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:
parent
3923ba1605
commit
9463c78bac
@ -5005,8 +5005,15 @@ gtk_window_finalize (GObject *object)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (priv->screen)
|
if (priv->screen)
|
||||||
|
{
|
||||||
g_signal_handlers_disconnect_by_func (priv->screen,
|
g_signal_handlers_disconnect_by_func (priv->screen,
|
||||||
gtk_window_on_composited_changed, window);
|
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);
|
g_free (priv->startup_id);
|
||||||
|
|
||||||
@ -5016,12 +5023,6 @@ gtk_window_finalize (GObject *object)
|
|||||||
priv->mnemonics_display_timeout_id = 0;
|
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);
|
G_OBJECT_CLASS (gtk_window_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user