diff options
author | Johan Dahlin <jdahlin@async.com.br> | 2003-01-16 16:52:52 +0000 |
---|---|---|
committer | Johan Dahlin <zilch@src.gnome.org> | 2003-01-16 16:52:52 +0000 |
commit | 2bef7a99a6c0cdba97ae4593140ecba8af233725 (patch) | |
tree | e0fc5d2b550fc3fbf26dfc7ba397bfc73cbac16b /gtk | |
parent | 5d9395d407bd66ee9f5af6e4e405a5b7c5b2c75d (diff) | |
download | pygtk-2bef7a99a6c0cdba97ae4593140ecba8af233725.tar.gz |
Don't limit to PyDict_Type.
2003-01-16 Johan Dahlin <jdahlin@async.com.br>
* gtk/libglade.override (connect_many) Use PyObject_GetAttrString
as a fallback. Remove warning.
(_wrap_glade_xml_signal_autoconnect): Don't limit to PyDict_Type.
S: ----------------------------------------------------------------------
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/libglade.override | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/gtk/libglade.override b/gtk/libglade.override index 035c66aa..ddcc23ee 100644 --- a/gtk/libglade.override +++ b/gtk/libglade.override @@ -98,13 +98,15 @@ connect_many(const gchar *handler_name, GObject *obj, PyObject *tuple, *self; GClosure *closure = NULL; - tuple = PyDict_GetItemString(handler_dict, (gchar *)handler_name); + tuple = PyMapping_GetItemString(handler_dict, (gchar *)handler_name); if (!tuple) { - PyErr_Clear(); - g_warning("could not find handler `%s'", handler_name); - return; + tuple = PyObject_GetAttrString(handler_dict, (gchar *)handler_name); + if (!tuple) { + PyErr_Clear(); + return; + } } - + if (PyTuple_Check(tuple)) { PyObject *callback = PyTuple_GetItem(tuple, 0); PyObject *extra = PySequence_GetSlice(tuple, 1, PyTuple_Size(tuple)); @@ -139,13 +141,16 @@ _wrap_glade_xml_signal_autoconnect(PyGObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = { "dict", NULL }; - PyObject *dict; + PyObject *object; if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "O!:GladeXML.signal_autoconnect", kwlist, - &PyDict_Type, &dict)) + "O:GladeXML.signal_autoconnect", kwlist, + &object)) return NULL; - glade_xml_signal_autoconnect_full(GLADE_XML(self->obj), connect_many,dict); + + glade_xml_signal_autoconnect_full(GLADE_XML(self->obj), + connect_many, + object); Py_INCREF(Py_None); return Py_None; } |