GtkWindow: fix an init/finalize asymmetry

Make sure we always deal with the same screen when
connecting / disconnecting the theme-variant changed handler.
Pointed out by Morten Welinder in
https://bugzilla.gnome.org/show_bug.cgi?id=705640
This commit is contained in:
Matthias Clasen 2013-08-13 17:44:04 -04:00
parent 3923ba1605
commit 9463c78bac

View File

@ -5005,8 +5005,15 @@ gtk_window_finalize (GObject *object)
}
if (priv->screen)
g_signal_handlers_disconnect_by_func (priv->screen,
gtk_window_on_composited_changed, window);
{
g_signal_handlers_disconnect_by_func (priv->screen,
gtk_window_on_composited_changed, window);
#ifdef GDK_WINDOWING_X11
g_signal_handlers_disconnect_by_func (gtk_settings_get_for_screen (priv->screen),
gtk_window_on_theme_variant_changed,
window);
#endif
}
g_free (priv->startup_id);
@ -5016,12 +5023,6 @@ gtk_window_finalize (GObject *object)
priv->mnemonics_display_timeout_id = 0;
}
#ifdef GDK_WINDOWING_X11
g_signal_handlers_disconnect_by_func (gtk_settings_get_default (),
gtk_window_on_theme_variant_changed,
window);
#endif
G_OBJECT_CLASS (gtk_window_parent_class)->finalize (object);
}