X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/53fa91bb028fc115847700f9f3640f1b107c4592..7392b131424322234159283e35fcccefa31f5ff2:/disobedience/properties.c diff --git a/disobedience/properties.c b/disobedience/properties.c index fe2bbf5..57ed65d 100644 --- a/disobedience/properties.c +++ b/disobedience/properties.c @@ -55,6 +55,10 @@ static void properties_ok(GtkButton *button, gpointer userdata); static void properties_apply(GtkButton *button, gpointer userdata); static void properties_cancel(GtkButton *button, gpointer userdata); +static void properties_logged_in(const char *event, + void *eventdata, + void *callbackdata); + /** @brief Data for a single preference */ struct prefdata { const char *track; @@ -157,6 +161,7 @@ static struct prefdata *prefdatas; /* Current prefdatas */ static GtkWidget *properties_window; static GtkWidget *properties_table; static struct progress_window *pw; +static event_handle properties_event; static void propagate_clicked(GtkButton attribute((unused)) *button, gpointer userdata) { @@ -191,6 +196,7 @@ void properties(int ntracks, const char **tracks) { popup_msg(GTK_MESSAGE_ERROR, "Too many tracks selected"); return; } + properties_event = event_register("logged-in", properties_logged_in, 0); /* Create a new properties window */ properties_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_style(properties_window, tool_style); @@ -489,13 +495,17 @@ static void properties_apply(GtkButton attribute((unused)) *button, static void properties_cancel(GtkButton attribute((unused)) *button, gpointer attribute((unused)) userdata) { gtk_widget_destroy(properties_window); + event_cancel(properties_event); + properties_event = 0; } -/** @brief Called on client reset +/** @brief Called when we've just logged in * * Destroys the current properties window. */ -void properties_reset(void) { +static void properties_logged_in(const char attribute((unused)) *event, + void attribute((unused)) *eventdata, + void attribute((unused)) *callbackdata) { if(properties_window) gtk_widget_destroy(properties_window); }