diff options
author | James Henstridge <james@daa.com.au> | 2001-12-20 05:49:35 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-12-20 05:49:35 +0000 |
commit | a8285608c598b2097676e3e1c8252d76fb297c4a (patch) | |
tree | f7be07b8e90347be2d8512f2675efa1434123658 | |
parent | d6205a14bbcf0c9deb86ab6d36d3af3716c350c2 (diff) | |
download | pygobject-a8285608c598b2097676e3e1c8252d76fb297c4a.tar.gz pygobject-a8285608c598b2097676e3e1c8252d76fb297c4a.tar.xz pygobject-a8285608c598b2097676e3e1c8252d76fb297c4a.zip |
fix for updated API. (pygobject_methods): just call the method "chain".PYGTK_1_99_6
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".
-rw-r--r-- | gobject/gobjectmodule.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 0feeda1..8c027d0 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1698,35 +1698,29 @@ pygobject_stop_emission(PyGObject *self, PyObject *args) static PyObject * pygobject_chain_from_overridden(PyGObject *self, PyObject *args) { + GSignalInvocationHint *ihint; guint signal_id, i, len; PyObject *first, *py_ret; gchar *name; GSignalQuery query; GValue *params, ret = { 0, }; + ihint = g_signal_get_invocation_hint(self->obj); + signal_id = ihint->signal_id; + name = g_signal_name(signal_id); + len = PyTuple_Size(args); - if (len < 1) { - PyErr_SetString(PyExc_TypeError,"GObject.chain_from_overridden needs at least one arg"); - return NULL; - } - first = PySequence_GetSlice(args, 0, 1); - if (!PyArg_ParseTuple(first, "s:GObject.emit", &name)) { - Py_DECREF(first); - return NULL; - } - Py_DECREF(first); - signal_id = g_signal_lookup(name, G_OBJECT_TYPE(self->obj)); if (signal_id == 0) { PyErr_SetString(PyExc_TypeError, "unknown signal name"); return NULL; } g_signal_query(signal_id, &query); - if (len != query.n_params + 1) { + if (len != query.n_params) { gchar buf[128]; g_snprintf(buf, sizeof(buf), "%d parameters needed for signal %s; %d given", - query.n_params, name, len - 1); + query.n_params, name, len); PyErr_SetString(PyExc_TypeError, buf); return NULL; } @@ -1738,7 +1732,7 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) g_value_init(¶ms[i + 1], query.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE); for (i = 0; i < query.n_params; i++) { - PyObject *item = PyTuple_GetItem(args, i+1); + PyObject *item = PyTuple_GetItem(args, i); if (pyg_value_from_pyobject(¶ms[i+1], item) < 0) { gchar buf[128]; @@ -1756,7 +1750,7 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) } if (query.return_type != G_TYPE_NONE) g_value_init(&ret, query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE); - g_signal_chain_from_overridden(params, signal_id, &ret); + g_signal_chain_from_overridden(params, &ret); for (i = 0; i < query.n_params + 1; i++) g_value_unset(¶ms[i]); g_free(params); @@ -1791,7 +1785,7 @@ static PyMethodDef pygobject_methods[] = { { "emit", (PyCFunction)pygobject_emit, METH_VARARGS }, { "stop_emission", (PyCFunction)pygobject_stop_emission, METH_VARARGS }, { "emit_stop_by_name", (PyCFunction)pygobject_stop_emission,METH_VARARGS }, - { "chain_from_overridden", (PyCFunction)pygobject_chain_from_overridden,METH_VARARGS }, + { "chain", (PyCFunction)pygobject_chain_from_overridden,METH_VARARGS }, { NULL, NULL, 0 } }; |