[gimp] Bug 768966 - Keyboard Shortcut hint disappears from tooltips...
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 768966 - Keyboard Shortcut hint disappears from tooltips...
- Date: Wed, 3 Aug 2016 21:45:41 +0000 (UTC)
commit 8d902b8df5f6cd58ba7efeed157f72a5e6572fb9
Author: Michael Natterer <mitch gimp org>
Date: Wed Aug 3 23:44:14 2016 +0200
Bug 768966 - Keyboard Shortcut hint disappears from tooltips...
...after entering single window mode
This commit fixes dangling pointers in GimpDockColumns, it doesn't fix
the bug but it's a prerequisite. Original patch by Massimo.
app/widgets/gimpdockcolumns.c | 41 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
---
diff --git a/app/widgets/gimpdockcolumns.c b/app/widgets/gimpdockcolumns.c
index e6530ed..13c6f7a 100644
--- a/app/widgets/gimpdockcolumns.c
+++ b/app/widgets/gimpdockcolumns.c
@@ -189,6 +189,27 @@ gimp_dock_columns_dispose (GObject *object)
g_object_unref (dock);
}
+ if (dock_columns->p->context)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->context),
+ (gpointer) &dock_columns->p->context);
+ dock_columns->p->context = NULL;
+ }
+
+ if (dock_columns->p->dialog_factory)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->dialog_factory),
+ (gpointer) &dock_columns->p->dialog_factory);
+ dock_columns->p->dialog_factory = NULL;
+ }
+
+ if (dock_columns->p->ui_manager)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->ui_manager),
+ (gpointer)&dock_columns->p->ui_manager);
+ dock_columns->p->ui_manager = NULL;
+ }
+
G_OBJECT_CLASS (parent_class)->dispose (object);
}
@@ -203,13 +224,33 @@ gimp_dock_columns_set_property (GObject *object,
switch (property_id)
{
case PROP_CONTEXT:
+ if (dock_columns->p->context)
+ g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->context),
+ (gpointer) &dock_columns->p->context);
dock_columns->p->context = g_value_get_object (value);
+ if (dock_columns->p->context)
+ g_object_add_weak_pointer (G_OBJECT (dock_columns->p->context),
+ (gpointer) &dock_columns->p->context);
break;
+
case PROP_DIALOG_FACTORY:
+ if (dock_columns->p->dialog_factory)
+ g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->dialog_factory),
+ (gpointer) &dock_columns->p->dialog_factory);
dock_columns->p->dialog_factory = g_value_get_object (value);
+ if (dock_columns->p->dialog_factory)
+ g_object_add_weak_pointer (G_OBJECT (dock_columns->p->dialog_factory),
+ (gpointer) &dock_columns->p->dialog_factory);
break;
+
case PROP_UI_MANAGER:
+ if (dock_columns->p->ui_manager)
+ g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->ui_manager),
+ (gpointer) &dock_columns->p->ui_manager);
dock_columns->p->ui_manager = g_value_get_object (value);
+ if (dock_columns->p->ui_manager)
+ g_object_add_weak_pointer (G_OBJECT (dock_columns->p->ui_manager),
+ (gpointer) &dock_columns->p->ui_manager);
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]