summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2012-12-05 18:35:39 -0500
committerMatthias Clasen <mclasen@redhat.com>2012-12-05 18:36:52 -0500
commitca72a56c760dc2fd484747a693149cc8231a57e0 (patch)
tree1a9ec54038294889972c59311ae12b2a7c138bad
parentef6405bfe7f8b6360743c89186ebe57d7a928aec (diff)
downloadgnome-control-center-ca72a56c760dc2fd484747a693149cc8231a57e0.tar.gz
privacy: Make popups work more than once
When closing the popups with Esc, the window gets a delete event. Since we want to keep the dialog around, we need to handle that by connecting the gtk_widget_hide_on_delete handler. https://bugzilla.gnome.org/show_bug.cgi?id=689747
-rw-r--r--panels/privacy/cc-privacy-panel.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/panels/privacy/cc-privacy-panel.c b/panels/privacy/cc-privacy-panel.c
index 73bb8d377..cfab38f25 100644
--- a/panels/privacy/cc-privacy-panel.c
+++ b/panels/privacy/cc-privacy-panel.c
@@ -273,6 +273,8 @@ add_screen_lock (CcPrivacyPanel *self)
dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "screen_lock_dialog"));
g_signal_connect_swapped (w, "clicked",
G_CALLBACK (gtk_widget_hide), dialog);
+ g_signal_connect (dialog, "delete-event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "automatic_screen_lock"));
g_settings_bind (self->priv->lock_settings, "lock-enabled",
@@ -338,6 +340,8 @@ add_name_visibility (CcPrivacyPanel *self)
dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "name_dialog"));
g_signal_connect_swapped (w, "clicked",
G_CALLBACK (gtk_widget_hide), dialog);
+ g_signal_connect (dialog, "delete-event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "stealth_mode"));
g_settings_bind (self->priv->privacy_settings, "hide-identity",
@@ -444,6 +448,8 @@ add_usage_history (CcPrivacyPanel *self)
dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "recent_dialog"));
g_signal_connect_swapped (w, "clicked",
G_CALLBACK (gtk_widget_hide), dialog);
+ g_signal_connect (dialog, "delete-event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "recently_used_switch"));
g_settings_bind (self->priv->privacy_settings, REMEMBER_RECENT_FILES,
@@ -572,6 +578,8 @@ add_trash_temp (CcPrivacyPanel *self)
dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "trash_dialog"));
g_signal_connect_swapped (w, "clicked",
G_CALLBACK (gtk_widget_hide), dialog);
+ g_signal_connect (dialog, "delete-event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "purge_trash_switch"));
g_settings_bind (self->priv->privacy_settings, REMOVE_OLD_TRASH_FILES,