summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-04-01 14:25:08 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-04-01 14:25:08 +0000
commit0ea96e3b0c8f0d9b3d7fbcf8c9621e647f6fb61c (patch)
tree68c0ca24bedfdb6d788162a9b192bdc350fb2c2e
parent1e9e7bf0d905970c0cace844c4f70577e444a700 (diff)
parent2e654162709d6da9b5c99265911806c51d11b5a3 (diff)
downloadgtk+-0ea96e3b0c8f0d9b3d7fbcf8c9621e647f6fb61c.tar.gz
Merge branch 'filechooser-signal-disconnect' into 'master'
filechooserwidget: Disconnect settings signal on dispose See merge request GNOME/gtk!3383
-rw-r--r--gtk/gtkfilechooserwidget.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index 751357d435..d03c796540 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -3084,14 +3084,13 @@ cancel_all_operations (GtkFileChooserWidget *impl)
/* Removes the settings signal handler. It's safe to call multiple times */
static void
-remove_settings_signal (GtkFileChooserWidget *impl,
- GdkDisplay *display)
+remove_settings_signal (GtkFileChooserWidget *impl)
{
if (impl->settings_signal_id)
{
- GtkSettings *settings;
+ GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET (impl));
+ GtkSettings *settings = gtk_settings_get_for_display (display);
- settings = gtk_settings_get_for_display (display);
g_signal_handler_disconnect (settings,
impl->settings_signal_id);
impl->settings_signal_id = 0;
@@ -3115,6 +3114,7 @@ gtk_file_chooser_widget_dispose (GObject *object)
location_entry_disconnect (impl);
impl->external_entry = NULL;
}
+ remove_settings_signal (impl);
g_clear_pointer (&impl->box, gtk_widget_unparent);
@@ -7855,7 +7855,7 @@ display_changed_cb (GtkWidget *wiget,
GParamSpec *pspec,
GtkFileChooserWidget *impl)
{
- remove_settings_signal (impl, gtk_widget_get_display (GTK_WIDGET (impl)));
+ remove_settings_signal (impl);
check_icon_theme (impl);
}