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
This commit is contained in:
Matthias Clasen 2012-12-05 18:35:39 -05:00
parent ef6405bfe7
commit ca72a56c76

View file

@ -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,