diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-04-01 14:25:08 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-04-01 14:25:08 +0000 |
commit | 0ea96e3b0c8f0d9b3d7fbcf8c9621e647f6fb61c (patch) | |
tree | 68c0ca24bedfdb6d788162a9b192bdc350fb2c2e | |
parent | 1e9e7bf0d905970c0cace844c4f70577e444a700 (diff) | |
parent | 2e654162709d6da9b5c99265911806c51d11b5a3 (diff) | |
download | gtk+-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.c | 10 |
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); } |