summaryrefslogtreecommitdiff
path: root/settings/main.c
diff options
context:
space:
mode:
authorJérôme Guelfucci <jeromeg@xfce.org>2010-01-24 18:18:34 +0100
committerNick Schermer <nick@xfce.org>2010-01-28 19:50:23 +0100
commit99fef1bfdca9866d54a1e0e883044e4c91bac481 (patch)
treed88982b4de0f2be0b06424ead86f96e7f76e6d04 /settings/main.c
parent44df9f7e55887fbecd7c948473cfa8d297a3cee3 (diff)
downloadxfce4-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.c18
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;