summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve threading support by adding pyg_thread_block/unblock around allJohan Dahlin2002-12-281-1/+17
| | | | | | | | * gobjectmodule.c, gtk/gtk.override, gtk/pygtkcellrenderer.c, gtk/pygtktreemodel: Improve threading support by adding pyg_thread_block/unblock around all PyObject_Call* and g_object_refs. Based upon patch by Jon Trowbridge. Fixes #99102.
* (pygobject_chain_from_overridden): check ifPYGTK_1_99_14James Henstridge2002-12-241-0/+6
| | | | g_signal_get_invocation_hint() returns NULL.
* add abstract type check here too. (pygobject_init): make this code moreJames Henstridge2002-12-242-92/+84
| | | | | | | | | | | | 2002-12-24 James Henstridge <james@daa.com.au> * pygobject.c (pygobject_init): add abstract type check here too. (pygobject_init): make this code more similar to pyg_object_new, so that it is easier to fix bugs in the future. * gobjectmodule.c (pyg_object_new): handle case of no keyword arguments. (pyg_object_new): refuse to instantiate an abstract type.
* ChangeLogJohan Dahlin2002-12-051-1/+1
|
* If the directory doesn't exist skip it. If not, it breaks when doingJohan Dahlin2002-11-281-0/+1
| | | | | * pygtk.py (_get_available_versions): If the directory doesn't exist skip it. If not, it breaks when doing os.listdir.
* get rid of pyg_handler_marshal and pyg_input_marshal, which were the lastJames Henstridge2002-11-191-24/+85
| | | | | | | | | | | | | | | | | | | | | | | | 2002-11-19 James Henstridge <james@daa.com.au> * gtk/gtkobject-support.c: get rid of pyg_handler_marshal and pyg_input_marshal, which were the last bits of code using the old GtkArg APIs in gtk. * gtk/gtk.override: remove wrappers for gtk_idle_add, gtk_timeout_add and gtk_input_add. (_wrap_gtk_quit_add): change so that it doesn't use pyg_handler_marshal. * gtk/__init__.py: set the TRUE and FALSE constants to True and False if possible. Fall back to 0/1 otherwise. (*): bind idle, timeout and input functions to gobject equivalents. * gobjectmodule.c (get_handler_priority): helper function to get priority value as a keyword argument. (pyg_idle_add): convert priority arg to an optional keyword argument. (pyg_timeout_add): and here. (pyg_io_add_watch): and here.
* add a wrapper for g_idle_add. (pyg_timeout_add): and a wrapper forJames Henstridge2002-11-181-0/+189
| | | | | | | | | 2002-11-18 James Henstridge <james@daa.com.au> * gobjectmodule.c (pyg_idle_add): add a wrapper for g_idle_add. (pyg_timeout_add): and a wrapper for g_timeout_add. (pyg_io_add_watch): and a wrapper for g_io_add_watch. (initgobject): add constants.
* set up closure correctly. Fix from bug #96922.James Henstridge2002-11-161-2/+2
| | | | | | | | 2002-11-16 James Henstridge <james@daa.com.au> * pygobject.c (pygobject_connect_object): set up closure correctly. Fix from bug #96922. (pygobject_connect_object_after): and here.
* (pyg_value_as_pyobject): when converting G_TYPE_BOOLEAN values toJames Henstridge2002-11-161-12/+13
| | | | | python objects, return one of Py_True or Py_False, so that Python 2.3 will return an instance of bool.
* if python object is None, set GValue to NULL for boxed, pointer andJames Henstridge2002-11-161-47/+53
| | | | | | | | | 2002-11-16 James Henstridge <james@daa.com.au> * pygtype.c (pyg_value_from_pyobject): if python object is None, set GValue to NULL for boxed, pointer and GObject types. (pyg_value_as_pyobject): convert G_TYPE_POINTER values to gobject.GPointer python objects.
* fix up misspelling.James Henstridge2002-08-261-3/+3
| | | | | | | | | | 2002-08-26 James Henstridge <james@daa.com.au> * codegen/docgen.py (DocWriter.write_full_hierarchy): fix up misspelling. * pygtype.c (pyg_value_from_pyobject): fix typo from when I was applying Thomas's patch.
* han Dahlin <jdahlin@telia.com>PYGTK_1_99_13Johan Dahlin2002-08-201-2/+2
| | | | | | | | han Dahlin <jdahlin@telia.com> Patch from Arjan J. Molenaar: * gobjectmodule.c (pyg_type_register): Don't unref borrowed references.
* same here.James Henstridge2002-08-181-0/+57
| | | | | | | | | | 2002-08-18 James Henstridge <james@daa.com.au> * gtk/Makefile.am: same here. * Makefile.am: install in a gtk-2.0 subdir of site-packages. * pygtk.py: new file to help with pygtk version parallel install.
* unref object_wrapper. (pyg_object_get_property): unref object_wrapper.James Henstridge2002-08-181-1/+3
| | | | | | | | 2002-08-18 James Henstridge <james@daa.com.au> * gobjectmodule.c (pyg_object_set_property): unref object_wrapper. (pyg_object_get_property): unref object_wrapper. (from patch by Arjan Molenaar on bug #71021).
* don't need to manually sink. (_wrap_gtk_tree_view_column_new): same here.James Henstridge2002-08-184-29/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* allow None when converting to string GValue (bug picked up by ThomasJames Henstridge2002-08-171-1/+3
| | | | | | | | | 2002-08-17 James Henstridge <james@daa.com.au> * pygtype.c (pyg_value_from_pyobject): allow None when converting to string GValue (bug picked up by Thomas Leonard. * gtk/gtk.defs (scroll_to_cell): allow column to be None (bug #90398).
* These changes help with win32 compat.PYGTK_1_99_12James Henstridge2002-07-123-8/+16
| | | | | | | | | | | | | | | 2002-07-12 James Henstridge <james@daa.com.au> These changes help with win32 compat. * pygboxed.c (PyGBoxed_Type): set tp_alloc and tp_new to NULL. (PyGPointer_Type): same here. * gobjectmodule.c (PyGInterface_Type): set tp_alloc and tp_new to NULL. (initgobject): set tp_new and tp_alloc for various types. * pygobject.c (PyGObject_Type): set tp_alloc and tp_new to NULL.
* Reworking of Arjan Molenaar's (arjanmolenaar@hetnet.nl) patch from bugPYGTK_1_99_11James Henstridge2002-07-095-19/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-07-09 James Henstridge <james@daa.com.au> Reworking of Arjan Molenaar's (arjanmolenaar@hetnet.nl) patch from bug 71435. * gtk/libglade.override (connect_one): watch the closure. (connect_many): watch the closure. * gtk/gtk.override (_wrap_gtk_toolbar_append_item): watch closure for signal. (_wrap_gtk_toolbar_prepend_item): same here. (_wrap_gtk_toolbar_insert_item): same here. (_wrap_gtk_toolbar_insert_stock): same here. (_wrap_gtk_toolbar_append_element): same here. (_wrap_gtk_toolbar_prepend_element): same here. (_wrap_gtk_toolbar_insert_element): same here. * pygobject.h (_PyGObject_Functions): add pygobject_watch_closure to the list of exported functions. * pygobject.c (pygobject_watch_closure): new function to watch a closure. We perform cyclic garbage collection on watched closures. The closure will automatically be unwatched when it gets invalidated. (pygobject_traverse): traverse watched closures as well. (pygobject_clear): invalidate all watched closures (pygobject_dealloc): invalidate watched closures on dealloc too. (PyGObject_Type): register the invalidate handler. (pygobject_connect): watch the closure we connect here. (pygobject_connect_after): same here.. (pygobject_connect_object): same here. (pygobject_connect_object_after): same here. * pygtype.c (pyg_closure_new): clean up closure on invalidate, rather than finalize (on invalidate, we break references). * pygobject.h (PyGObject): add closures member to store references to PyGClosures.
* apply another memory leak fix from Arjan (from bug #87413).James Henstridge2002-07-081-0/+4
| | | | | | | | | | 2002-07-08 James Henstridge <james@daa.com.au> * pygobject.c (pygobject_connect): apply another memory leak fix from Arjan (from bug #87413). (pygobject_connect_after): equivalent fix here. (pygobject_connect_object): and here. (pygobject_connect_object_after): and here.
* add __grefcount__ property.James Henstridge2002-07-071-1/+8
| | | | | | 2002-07-07 James Henstridge <james@daa.com.au> * pygobject.c (pygobject_get_refcount): add __grefcount__ property.
* update to use this function. (ArgMatcher.register_boxed): short circuit ifJames Henstridge2002-07-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-07-07 James Henstridge <james@daa.com.au> * codegen/argtypes.py (GtkTreePathArg.write_return): update to use this function. (ArgMatcher.register_boxed): short circuit if there is already a handler for the boxed type (helps with setting custom handlers for boxed types). * gtk/gtk-types.c (pygdk_rectangle_from_pyobject): new function to parse a GdkRectangle from a PyObject. * gtk/pygtktreemodel.c (pygtk_generic_tree_model_get_path): print a warning if the return value could not be converted to a GtkTreePath. * gtk/gtk.override (_wrap_gtk_tree_model_get_value): don't assume tree paths are tuples. * codegen/argtypes.py (GtkTreePathArg.write_param): fix up code generator to get rid of assumption that tree paths are tuples, and catch case where pygtk_tree_path_from_pyobject() returns NULL. * gtk/gtk-types.c (pygtk_tree_path_from_pyobject): change so that we treat an integer PyObject as a tree path with a single index. * pygtype.c (pyg_closure_marshal): apply patch from Arjan Molenaar <arjanmolenaar@hetnet.nl> that fixes a reference leak for the argument tuple passed to the callback. (pyg_signal_class_closure_marshal): apply similar fix here.
* Add GBoxed::copyJonathan Blandford2002-06-242-2/+83
| | | | | | | | | Sun Jun 23 11:10:30 2002 Jonathan Blandford <jrb@gnome.org> * pygboxed.c: Add GBoxed::copy * pygobject.c (pygobject_init): take kwargs so we can pass construct-only arguments to our initialization function.
* copy boxed arguments.James Henstridge2002-06-235-13/+28
| | | | | | | | | | | | | | | | | | | | 2002-06-23 James Henstridge <james@daa.com.au> * gtk/gtk.override (_wrap_gtk_tree_sortable_get_sort_column_id): copy boxed arguments. * pygobject.h: fix up prototypes. * gobjectmodule.c (pyg_object_set_property): copy boxed arguments. * pygobject.c (pygobject_get_property): copy boxed arguments here. (pygobject_emit): same here. (pygobject_chain_from_overridden): same here. * pygtype.c (pyg_value_as_pyobject): add "copy_boxed" argument to this function. (pyg_closure_marshal): pass FALSE for copy_boxed argument. (pyg_signal_class_closure_marshal): same here.
* if a value holds a PyObject*, the code that is getting the value isMatt Wilson2002-06-171-3/+9
| | | | | | | | 2002-06-17 Matt Wilson <msw@redhat.com> * pygtype.c (pyg_value_as_pyobject): if a value holds a PyObject*, the code that is getting the value is expecting a valid object. Translate NULL pointers to Py_None.
* decref the exception instance after raising the error.James Henstridge2002-06-161-0/+1
| | | | | | | 2002-06-15 James Henstridge <james@daa.com.au> * gobjectmodule.c (pyg_error_check): decref the exception instance after raising the error.
* the path argument must be a tuple. Ints are not automatically converted toMatt Wilson2002-05-311-6/+9
| | | | | | | | | | | | 2002-05-31 Matt Wilson <msw@redhat.com> * examples/pygtk-demo/demos/list_store.py (fixed_toggled): the path argument must be a tuple. Ints are not automatically converted to tuples any more. * pygtype.c (pyg_value_as_pyobject): change the behavior of G_TYPE_UINT to match the code generator's output on 32 bit systems.
* add support for G_TYPE_INTERFACE, provided the interface has a prereq onJames Henstridge2002-05-151-6/+27
| | | | | | | | | 2002-05-16 James Henstridge <james@daa.com.au> * pygtype.c (pyg_value_from_pyobject): add support for G_TYPE_INTERFACE, provided the interface has a prereq on G_TYPE_OBJECT. (pyg_value_as_pyobject): same here.
* add handler for G_TYPE_PARAM (fix bug #81695). (pyg_value_as_pyobject):James Henstridge2002-05-143-41/+54
| | | | | | | | 2002-05-14 James Henstridge <james@daa.com.au> * pygtype.c (pyg_value_from_pyobject): add handler for G_TYPE_PARAM (fix bug #81695). (pyg_value_as_pyobject): same in this function.
* allow override of autoconf and autoheaderPYGTK_1_99_9PYGTK_1_99_10Matt Wilson2002-03-191-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-03-19 Matt Wilson <msw@redhat.com> * autogen.sh: allow override of autoconf and autoheader * gtk/gtk.defs (GtkTreeModel.get_iter_root): use the gtk_tree_model_get_iter_first code, get_iter_root is going to be deprecated. (GtkTreeModel.get_iter_first): added * gtk/gtk.override (_wrap_gtk_tree_model_get_iter_root): check the return value of gtk_tree_model_get_iter_root and return None if it failed. Rename to _wrap_gtk_tree_model_get_iter_first. * codegen/codegen.py (write_class, write_interface, write_boxed write_pointer): use overrides.is_already_included to prevent from having the same override code included twice in one file. This allows two methods to point to the same function. * codegen/override.py (Overrides.is_already_included): added a function that returns true if the override code has been emitted already. 2002-03-11 Matt Wilson <msw@redhat.com> * gobjectmodule.c: remove pygobject_exception_notifiers and pyg_fatal_exceptions_notify.
* fix up property listing.PYGTK_1_99_8James Henstridge2002-03-161-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | 2002-03-16 James Henstridge <james@daa.com.au> * pygtype.c (add_property_docs): fix up property listing. * gtk/libglade.override: add modulename directive. * gtk/gdk.override: add modulename directive. * gtk/gtk.override: add modulename directive. * atk.override: add modulename directive. * pango.override: add modulename directive. * codegen/codegen.py (write_class): if override.modulename is set, put it into the classname. (write_interface): same here. (write_boxed): same here. (write_pointer): same here. * codegen/override.py (Overrides.__parse_override): add support for a "modulename" directive for overrides files.
* Fix a leakJohan Dahlin2002-02-121-2/+3
| | | | | | | | 2002-02-12 Johan Dahlin <jdahlin@telia.com> * gobjectmodule.c (initgobject): Fix a leak * gtk/gtkmodule.c (init_gtk): Fix another one
* register pointer types as well.James Henstridge2002-02-054-6/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-02-05 James Henstridge <james@daa.com.au> * codegen/codegen.py (register_types): register pointer types as well. * codegen/argtypes.py (PointerArg): handling for pointer arg types. (ArgMatcher.register_pointer): add function to register pointer types. * gtk/gtk.override (_wrap_gtk_ctree__get_selection): GtkCTreeNode is not a boxed type. (_wrap_gtk_ctree_base_nodes): same. (_wrap_gtk_ctree_insert_node): same. (_wrap_gtk_ctree_find_by_row_data): same. (_wrap_gtk_ctree_find_all_by_row_data): same. (_wrap_gtk_ctree_node_get_text): same. (_wrap_gtk_ctree_node_get_pixmap): same. (_wrap_gtk_ctree_node_get_pixtext): same. (_wrap_gtk_ctree_get_node_info): same. (_wrap_gtk_ctree_node_set_row_data): same. (_wrap_gtk_ctree_node_get_row_data): same here. (_wrap_gtk_ctree_getattr): same here. * codegen/codegen.py (write_source): register pointer types as pointers. * pango.override (_wrap_pango_font_description_new): ignore some private (well, pango module API) functions. * gtk/gtk-types.defs (CTreeNode): make this a pointer type. * codegen/codegen.py (write_pointer_method): new method to write methods for GPointer types. (write_pointer_constructor): new function for writing constructor for GPointer types. (write_pointer_getsets): new function for writing getters for pointer objects (this should be merged with the GObject and GBoxed versions ...). (write_pointer): add new function, which calls all the GPointer related functions. (write_source): write pointer types. * gobjectmodule.c (initgobject): actually ready the GPointer type. * gtk/gtk-types.defs (CTreeNode): get rid of fields here. They will be covered by the custom getattr() function, so no need to duplicate. * codegen/codegen.py (write_boxed_getsets): convert to use getsets for boxed objects. (write_boxed): use write_boxed_getsets() to write the getsets, while allowing boxed objects to specify a getattr() function. 2002-02-04 James Henstridge <james@daa.com.au> * gobjectmodule.c (initgobject): add GPointer to the module dict. (pygobject_api_functions): and to the API vtable. * pygobject.h (pyg_constant_strip_prefix): and add it to the public header. * pygobject-private.h (pyg_pointer_new): add stuff to private header ... * pygboxed.c (PyGPointer): add code to handle base GPointer type. * codegen/defsparser.py (DefsParser.__init__): add self.pointers attribute. (DefsParser.define_pointer): handle (define-pointer ...). (DefsParser.write_defs): handle pointer types. * codegen/definitions.py (PointerDef): new definition type for G_TYPE_POINTER subclasses.
* same code here, if __doc__ hasn't already been set. (initgobject): don'tPYGTK_1_99_7James Henstridge2002-01-282-2/+10
| | | | | | | | | | | | 2002-01-28 James Henstridge <james@daa.com.au> * gobjectmodule.c (pyg_type_register): same code here, if __doc__ hasn't already been set. (initgobject): don't bother setting __doc__ on GObject here, as pygobject_register_class() does this for us. * pygobject.c (pygobject_register_class): need to set the __doc__ descriptor on every class, otherwise it gets lost.
* use g_string_append_printf(). (add_property_docs): same here.James Henstridge2002-01-241-19/+14
| | | | | | | | | 2002-01-24 James Henstridge <james@daa.com.au> * pygtype.c (add_signal_docs): use g_string_append_printf(). (add_property_docs): same here. * examples/simple/tooltip.py: updated version from Steve George.
* (add_signal_docs): only get the class for a type if it is aJames Henstridge2002-01-231-3/+5
| | | | classed type.
* (add_property_docs): fix small bug.James Henstridge2002-01-232-1/+818
|
* fill in __doc__ descriptorJames Henstridge2002-01-233-1/+200
| | | | | | | | | | | | | | | | 2002-01-23 James Henstridge <james@daa.com.au> * pygtype.c (object_doc_descr_get): fill in __doc__ descriptor * gobjectmodule.c (initgobject): add __doc__ descriptor to GObject and GInterface. Add __gdoc__ as a synonym because type.__doc__ masks our descriptor sometimes :( * pygtype.c (object_doc_descr_get): skeleton of the __doc__ descriptor. (PyGObjectDoc_Type): type definition. (pyg_object_descr_doc_get): function to create and return the __doc__ descriptor (we only need one for all classes).
* move GObject wrapper stuff here.James Henstridge2002-01-222-810/+22
| | | | | | 2002-01-22 James Henstridge <james@daa.com.au> * pygobject.c: move GObject wrapper stuff here.
* and again :(James Henstridge2002-01-222-2/+2
|
* small patch to get things working again after last commit.James Henstridge2002-01-222-220/+15
|
* move closure stuff here.James Henstridge2002-01-222-0/+209
| | | | | | 2002-01-22 James Henstridge <james@daa.com.au> * pygtype.c: move closure stuff here.
* don't create boxed_marshal hash table, and remove the type functions movedJames Henstridge2002-01-223-557/+581
| | | | | | | | | | | 2002-01-22 James Henstridge <james@daa.com.au> * gobjectmodule.c (initgobject): don't create boxed_marshal hash table, and remove the type functions moved to pygtype.c. * pygtype.c: move GType stuff here from gobjectmodule.c. (pyg_register_boxed_custom): store the custom boxed marshal functions as GType data, rather than in a separate hash table.
* list extra source files.James Henstridge2002-01-213-165/+203
| | | | | | | | | | | 2002-01-21 James Henstridge <james@daa.com.au> * Makefile.am (gobjectmodule_la_SOURCES): list extra source files. * pygobject-private.h (pyg_boxed_new): new header for functions shared between files in gobjectmodule. * pygboxed.c (pyg_register_boxed): move GBoxed handling code here.
* convert None, int, long, float, str and object to GTypes.James Henstridge2002-01-121-0/+18
| | | | | | | | | | 2002-01-12 James Henstridge <james@daa.com.au> * gobjectmodule.c (pyg_type_from_object): convert None, int, long, float, str and object to GTypes. * gtk/gtkmodule.c (init_gtk): only raise a runtime error if we can't initialise gtk.
* removed debugging code I didn't mean to check in.Matt Wilson2002-01-111-3/+2
| | | | | | | | | | | | | | | 2002-01-11 Matt Wilson <msw@redhat.com> * gtk/gtk.override (_wrap_gtk_toolbar_insert_stock): removed debugging code I didn't mean to check in. * gobjectmodule.c (pyg_closure_new): use PyTuple_SetItem to build the tuple if extra_args isn't one. It's faster than using abstractions and clarifies ownership rules, so we always incref extra_args even if we're about to wrap it in a tuple. Fixes crashes when passing callback functions into GtkToolbar.{append_item,prepend_item,insert_item,insert_stock, append_element}
* the F10 key is used to start navigating the menu -- not alt.James Henstridge2002-01-071-2/+2
| | | | | | | | | | | | | | | | | | 2002-01-07 James Henstridge <james@daa.com.au> * examples/pygtk-demo/demos/itemfactory.py (main): the F10 key is used to start navigating the menu -- not alt. * gtk/gtk-types.c (PyGtkStyleHelper_Dealloc): use PyObject_DEL. (PyGtkStyle_Dealloc): same here. (PyGdkWindow_Dealloc): same here. (PyGdkGC_Dealloc): same here. (PyGdkColormap_Dealloc): same here. (pygdk_atom_dealloc): same here. * gobjectmodule.c (pyg_type_wrapper_dealloc): use PyObject_DEL to prevent segfaults with pymalloc. (pyg_param_spec_dealloc): same here.
* initialise GThread if threading is enabled at compile time (this doesn'tJames Henstridge2002-01-071-0/+5
| | | | | | | | 2002-01-07 James Henstridge <james@daa.com.au> * gobjectmodule.c (initgobject): initialise GThread if threading is enabled at compile time (this doesn't initialise GDK threading though -- you need to run gtk.gdk.threads_init for that).
* add overriden implementation that allows threads while waiting, so someJames Henstridge2002-01-072-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-01-07 James Henstridge <james@daa.com.au> * gtk/gdk.override (_wrap_gdk_threads_enter): add overriden implementation that allows threads while waiting, so some other thread has a chance to give up the gdk lock. * gtk/gtkmodule.c (functions): remove stuff. * gtk/pygtk-private.h: remove definitions here as well. * gtk/pygtk.h (_PyGtk_FunctionStruct): remove destroy notify and thread block stuff. * gtk/gtkobject-support.c: remove pygtk_destroy_notify. * gtk/gtk.override (pygtk_tree_foreach_marshal): move this function here from gtkobject-support.c, and don't bother blocking threads. (_wrap_gtk_tree_selection_selected_foreach): same here -- don't need to unblock threads. (pygtk_tree_selection_marshal): move this function here from gtkobject-support.c. Convert to use pyg_block_threads. (_wrap_gtk_dialog_run): add overriden implementation that unblocks threads. (_wrap_gtk_main): use pyg_block_threads (_wrap_gtk_main_iteration): same. (_wrap_gtk_item_factory_create_items): same here. (_wrap_gtk_menu_popup): same here. (_wrap_gtk_clist_set_row_data): use pyg_destroy_notify (_wrap_gtk_timeout_add): same here. (_wrap_gtk_idle_add): same here. (_wrap_gtk_quit_add): same here. (_wrap_gtk_input_add_full): same here. (_wrap_gtk_ctree_node_set_row_data): same here. * gtk/gtkobject-support.c: remove PyGTK_BLOCK_THREADS and PyGTK_UNBLOCK_THREADS macros. (pygtk_destroy_notify): use pyg_block_threads. (pygtk_custom_destroy_notify): same. (pygtk_handler_marshal): same. (pygtk_input_marshal): same. * gtk/gdk.override (_wrap_gdk_threads_init): register gdk lock based recursive threads block/unblock functions. If threading was disabled at compile time, then this function will error out. * gtk/gdk.defs (threads_enter, threads_leave, threads_leave): add functions. * gobjectmodule.c (functions): add destroy_notify here as well. * pygobject.h: add destroy_notify to the PyGObject_Functions vtable.
* handler for registering thread block/unblock funcs.James Henstridge2002-01-072-10/+67
| | | | | | | | | | | | | | | 2002-01-07 James Henstridge <james@daa.com.au> * gobjectmodule.c (pyg_set_thread_block_funcs): handler for registering thread block/unblock funcs. (pygobject_destroy_notify): block threads during DECREF call. (pyg_closure_destroy): block threads during closure DECREF. (pyg_closure_marshal): block threads when calling function. (pyg_signal_class_closure_marshal): block threads. (functions): add extra functions to vtable. * pygobject.h (struct _PyGObject_Functions): add thread block/unblock slots to the API table.
* fix for updated API. (pygobject_methods): just call the method "chain".PYGTK_1_99_6James Henstridge2001-12-201-16/+10
| | | | | | | | 2001-12-20 James Henstridge <james@daa.com.au> * gobjectmodule.c (pygobject_chain_from_overridden): fix for updated API. (pygobject_methods): just call the method "chain".