summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>2001-10-05 19:01:08 +0000
committerMatt Wilson <msw@src.gnome.org>2001-10-05 19:01:08 +0000
commitab42d05513681bacddda67c9e57095451341cfc4 (patch)
tree29a202b5e9a7c43bdd455cfc96067a36babb24be
parent0641e0011345d4c20fce5a8490c74bfc854f740c (diff)
downloadpygobject-ab42d05513681bacddda67c9e57095451341cfc4.tar.gz
pygobject-ab42d05513681bacddda67c9e57095451341cfc4.tar.xz
pygobject-ab42d05513681bacddda67c9e57095451341cfc4.zip
mask out G_SIGNAL_TYPE_STATIC_SCOPE to fix signal emission.
2001-10-05 Matt Wilson <msw@redhat.com> * gobjectmodule.c (pygobject_emit): mask out G_SIGNAL_TYPE_STATIC_SCOPE to fix signal emission.
-rw-r--r--gobject/gobjectmodule.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index b5b99ce..ee76f47 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -1534,7 +1534,8 @@ pygobject_emit(PyGObject *self, PyObject *args)
g_value_set_object(&params[0], G_OBJECT(self->obj));
for (i = 0; i < query.n_params; i++)
- g_value_init(&params[i + 1], query.param_types[i]);
+ g_value_init(&params[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);
@@ -1553,12 +1554,12 @@ pygobject_emit(PyGObject *self, PyObject *args)
}
}
if (query.return_type != G_TYPE_NONE)
- g_value_init(&ret, query.return_type);
+ g_value_init(&ret, query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE);
g_signal_emitv(params, signal_id, detail, &ret);
for (i = 0; i < query.n_params + 1; i++)
g_value_unset(&params[i]);
g_free(params);
- if (query.return_type != G_TYPE_NONE) {
+ if (query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE != G_TYPE_NONE) {
py_ret = pyg_value_as_pyobject(&ret);
g_value_unset(&ret);
} else {