summaryrefslogtreecommitdiff
path: root/gtk/gtkmodule.c
diff options
context:
space:
mode:
authorJames Henstridge <james@daa.com.au>2002-08-18 02:55:19 +0000
committerJames Henstridge <jamesh@src.gnome.org>2002-08-18 02:55:19 +0000
commit6dad702c275ad072fb77e81765250c6bcddf48d8 (patch)
treeb295d0dea8b7338aab71674645719b8054b2b06f /gtk/gtkmodule.c
parent5613b947a84950d57bc9c519b04d279f91385aab (diff)
downloadpygtk-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.c11
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");