diff options
author | James Henstridge <james@daa.com.au> | 2002-08-18 02:55:19 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2002-08-18 02:55:19 +0000 |
commit | 6dad702c275ad072fb77e81765250c6bcddf48d8 (patch) | |
tree | b295d0dea8b7338aab71674645719b8054b2b06f /gtk/gtkmodule.c | |
parent | 5613b947a84950d57bc9c519b04d279f91385aab (diff) | |
download | pygtk-6dad702c275ad072fb77e81765250c6bcddf48d8.tar.gz |
don't need to manually sink. (_wrap_gtk_tree_view_column_new): same here.
2002-08-18 James Henstridge <james@daa.com.au>
* gtk/gtk.override (_wrap_gtk_clist_new_with_titles): don't need
to manually sink.
(_wrap_gtk_tree_view_column_new): same here.
(_wrap_gtk_button_new): same here.
(_wrap_gtk_toggle_button_new): same here.
(_wrap_gtk_check_button_new): same here.
(_wrap_gtk_radio_button_new): same here.
(_wrap_gtk_list_item_new): same here.
(_wrap_gtk_menu_item_new): same here.
(_wrap_gtk_check_menu_item_new): same here.
(_wrap_gtk_radio_menu_item_new): same here.
(_wrap_gtk_image_menu_item_new): same here.
(_wrap_gtk_ctree_new_with_titles): same here.
(_wrap_gtk_dialog_new_with_buttons): same here.
(_wrap_gtk_message_dialog_new): same here.
(_wrap_gtk_progress_bar_new_with_adjustment): same here.
* gtk/gtkmodule.c (sink_gtkobject): function to sink a GtkObject
if it is floating.
(init_gtk): register sink_gtkobject for sinking GtkObjects.
* codegen/codegen.py
(GObjectWrapper.get_initial_constructor_substdict): get rid of
gtkobjectsink bit of code.
* pygobject.c (pygobject_register_sinkfunc): new function to
register a function to get rid of the floating reference from an
object.
(sink_object): run a sinkfunc for an object if it has been
registered.
(pygobject_new): call sink_object
(pygobject_register_wrapper): call sink_object.
Diffstat (limited to 'gtk/gtkmodule.c')
-rw-r--r-- | gtk/gtkmodule.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c index 62e054e0..1c3e33ef 100644 --- a/gtk/gtkmodule.c +++ b/gtk/gtkmodule.c @@ -25,6 +25,15 @@ static struct _PyGtk_FunctionStruct functions = { &PyGdkAtom_Type, PyGdkAtom_New, }; +static void +sink_gtkobject(GObject *object) +{ + if (GTK_OBJECT_FLOATING(object)) { + g_object_ref(object); + gtk_object_sink(GTK_OBJECT(object)); + } +} + DL_EXPORT(void) init_gtk(void) { @@ -39,6 +48,8 @@ init_gtk(void) init_pygobject(); g_assert(pygobject_register_class != NULL); + pygobject_register_sinkfunc(GTK_TYPE_OBJECT, sink_gtkobject); + /* set the default python encoding to utf-8 */ PyUnicode_SetDefaultEncoding("utf-8"); |