mirror of https://github.com/GNOME/gimp.git
app: fix dangling weak pointers to GimpEditor->priv->ui_manager
This commit is contained in:
parent
ef0eb29e55
commit
1d069d05b4
|
@ -273,6 +273,13 @@ gimp_editor_dispose (GObject *object)
|
|||
|
||||
g_clear_pointer (&editor->priv->ui_path, g_free);
|
||||
|
||||
if (editor->priv->ui_manager)
|
||||
{
|
||||
g_object_remove_weak_pointer (G_OBJECT (editor->priv->ui_manager),
|
||||
(gpointer) &editor->priv->ui_manager);
|
||||
editor->priv->ui_manager = NULL;
|
||||
}
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
@ -441,15 +448,20 @@ gimp_editor_create_menu (GimpEditor *editor,
|
|||
editor->priv->menu_factory = g_object_ref (menu_factory);
|
||||
|
||||
if (editor->priv->ui_manager)
|
||||
g_signal_handlers_disconnect_by_func (editor->priv->ui_manager->gimp->config,
|
||||
G_CALLBACK (gimp_editor_style_updated),
|
||||
editor);
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (editor->priv->ui_manager->gimp->config,
|
||||
G_CALLBACK (gimp_editor_style_updated),
|
||||
editor);
|
||||
g_object_remove_weak_pointer (G_OBJECT (editor->priv->ui_manager),
|
||||
(gpointer) &editor->priv->ui_manager);
|
||||
}
|
||||
|
||||
editor->priv->ui_manager = gimp_menu_factory_get_manager (menu_factory,
|
||||
menu_identifier,
|
||||
popup_data);
|
||||
g_object_add_weak_pointer (G_OBJECT (editor->priv->ui_manager),
|
||||
(gpointer) &editor->priv->ui_manager);
|
||||
|
||||
g_signal_connect_object (editor->priv->ui_manager->gimp->config,
|
||||
"notify::theme",
|
||||
G_CALLBACK (gimp_editor_style_updated),
|
||||
|
|
Loading…
Reference in New Issue