diff options
author | Jérôme Guelfucci <jeromeg@xfce.org> | 2010-01-24 18:18:34 +0100 |
---|---|---|
committer | Nick Schermer <nick@xfce.org> | 2010-01-28 19:50:23 +0100 |
commit | 99fef1bfdca9866d54a1e0e883044e4c91bac481 (patch) | |
tree | d88982b4de0f2be0b06424ead86f96e7f76e6d04 /settings/main.c | |
parent | 44df9f7e55887fbecd7c948473cfa8d297a3cee3 (diff) | |
download | xfce4-session-99fef1bfdca9866d54a1e0e883044e4c91bac481.tar.gz |
Fix the response handling of the settings dialog.
The close button and the help button did not work anymore. Add a handler
for the "response" and "delete-event" signals.
Diffstat (limited to 'settings/main.c')
-rw-r--r-- | settings/main.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/settings/main.c b/settings/main.c index e5ebeccc..8588dd48 100644 --- a/settings/main.c +++ b/settings/main.c @@ -44,6 +44,17 @@ static GOptionEntry option_entries[] = { NULL } }; +static void xfce4_session_settings_dialog_response (GtkDialog *dialog, gint response, gpointer userdata) +{ + if (response == GTK_RESPONSE_HELP) { + g_signal_stop_emission_by_name(dialog, "response"); + g_spawn_command_line_async("xfhelp4 xfce4-session.html", NULL); + } + else { + gtk_widget_destroy(GTK_WIDGET(dialog)); + gtk_main_quit (); + } +} int main(int argc, @@ -122,10 +133,11 @@ main(int argc, if(G_UNLIKELY(opt_socket_id == 0)) { GtkWidget *dialog = GTK_WIDGET(gtk_builder_get_object(builder, "xfce4_session_settings_dialog")); - while(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_HELP) - g_spawn_command_line_async("xfhelp4 xfce4-session.html", NULL); + g_signal_connect(dialog, "response", G_CALLBACK(xfce4_session_settings_dialog_response), NULL); + g_signal_connect(dialog, "delete-event", G_CALLBACK(gtk_main_quit), NULL); - gtk_widget_destroy(dialog); + gtk_widget_show(dialog); + gtk_main (); } else { GtkWidget *plug, *plug_child; |