diff options
author | Johan Dahlin <johan@src.gnome.org> | 2006-11-18 15:14:19 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2006-11-18 15:14:19 +0000 |
commit | dd9229fcc0ce1123e20f26804d147030cb268a13 (patch) | |
tree | 2e5f23e5b0ffb6652912d7e81c4991a56dd20d66 /gobject/pygobject.c | |
parent | 4c43dcb10c104539bdac1c9e46bbf016a268f9d9 (diff) | |
download | pygobject-dd9229fcc0ce1123e20f26804d147030cb268a13.tar.gz pygobject-dd9229fcc0ce1123e20f26804d147030cb268a13.tar.xz pygobject-dd9229fcc0ce1123e20f26804d147030cb268a13.zip |
set __module__ on gobject derived types, fixes #376099
* gobject/pygobject.c (pygobject_register_class): set __module__ on
gobject derived types, fixes #376099
Diffstat (limited to 'gobject/pygobject.c')
-rw-r--r-- | gobject/pygobject.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gobject/pygobject.c b/gobject/pygobject.c index 4cfe9e9..94ae09c 100644 --- a/gobject/pygobject.c +++ b/gobject/pygobject.c @@ -482,9 +482,9 @@ pygobject_register_class(PyObject *dict, const gchar *type_name, PyObject *o; const char *class_name, *s; PyObject *runtime_bases; - PyObject *bases_list, *bases; + PyObject *bases_list, *bases, *mod_name; int i; - + class_name = type->tp_name; s = strrchr(class_name, '.'); if (s != NULL) @@ -530,6 +530,16 @@ pygobject_register_class(PyObject *dict, const gchar *type_name, return; } + /* Set type.__module__ to the name of the module, + * otherwise it'll default to 'gobject', see #376099 + */ + s = strrchr(type->tp_name, '.'); + if (s != NULL) { + mod_name = PyString_FromStringAndSize(type->tp_name, (int)(s - type->tp_name)); + PyDict_SetItemString(type->tp_dict, "__module__", mod_name); + Py_DECREF(mod_name); + } + if (gtype) { o = pyg_type_wrapper_new(gtype); PyDict_SetItemString(type->tp_dict, "__gtype__", o); |