diff options
author | Gustavo J. A. M. Carneiro <gcarneiro@src.gnome.org> | 2004-06-13 16:23:45 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gcarneiro@src.gnome.org> | 2004-06-13 16:23:45 +0000 |
commit | a207d355a29f3b39dbdb81da99bbb7c4e31e4176 (patch) | |
tree | 59a35b42f0a468be2c8b69906615a2af3f9dd214 /gtk/gtkmodule.c | |
parent | 2683869e5ae53a35b1526852214fec3f23fa3333 (diff) | |
download | pygtk-a207d355a29f3b39dbdb81da99bbb7c4e31e4176.tar.gz |
Fix Bug 122569: gtk.Window derived class segfaults
Diffstat (limited to 'gtk/gtkmodule.c')
-rw-r--r-- | gtk/gtkmodule.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c index 22ec993f..a6acb336 100644 --- a/gtk/gtkmodule.c +++ b/gtk/gtkmodule.c @@ -50,6 +50,15 @@ static struct _PyGtk_FunctionStruct functions = { }; static void +sink_gtkwindow(GObject *object) +{ + if (object->ref_count == 1 + && GTK_WINDOW(object)->has_user_ref_count) { + g_object_ref(object); + } +} + +static void sink_gtkobject(GObject *object) { if (GTK_OBJECT_FLOATING(object)) { @@ -90,6 +99,7 @@ init_gtk(void) init_pygobject(); g_assert(pygobject_register_class != NULL); + pygobject_register_sinkfunc(GTK_TYPE_WINDOW, sink_gtkwindow); pygobject_register_sinkfunc(GTK_TYPE_OBJECT, sink_gtkobject); /* set the default python encoding to utf-8 */ |