summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2011-09-09 18:07:19 -0400
committerColin Walters <walters@verbum.org>2011-09-09 18:07:19 -0400
commitc3da3d46ffa9c3b53e7f7132eaa9c9c722ebc859 (patch)
tree11a06794d06f8e8bbf7b5208cc76b0e5a014a714
parent82028495cf54397452f41c3f27bfad1e30ea9d63 (diff)
downloadgobject-introspection-c3da3d46ffa9c3b53e7f7132eaa9c9c722ebc859.tar.gz
scanner: Add "notify" signal to GObject
For gjs we want to switch to using introspection data for signals, and the "notify" signal being missing from GObject was a problem.
-rw-r--r--giscanner/gdumpparser.py3
-rw-r--r--tests/repository/gitestrepo.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py
index c0c4ef61..4f3a71b0 100644
--- a/giscanner/gdumpparser.py
+++ b/giscanner/gdumpparser.py
@@ -221,6 +221,9 @@ blob containing data gleaned from GObject's primitive introspection."""
gtype_name=record.ctype.replace('Spec', ''),
get_type='intern',
c_symbol_prefix=prefix)
+ node.signals.append(ast.Signal('notify', ast.Return(ast.TYPE_NONE), [],
+ detailed=True, when='first', no_recurse=True,
+ no_hooks=True, action=True))
node.fundamental = True
if record.name == 'ParamSpec':
node.is_abstract = True
diff --git a/tests/repository/gitestrepo.c b/tests/repository/gitestrepo.c
index e7c3ae45..cdaeb4cf 100644
--- a/tests/repository/gitestrepo.c
+++ b/tests/repository/gitestrepo.c
@@ -78,6 +78,15 @@ main(int argc, char **argv)
g_assert (siginfo != NULL);
g_base_info_unref (siginfo);
+ /* Test notify on gobject */
+
+ info = g_irepository_find_by_name (repo, "GObject", "Object");
+ g_assert (info != NULL);
+ siginfo = g_object_info_find_signal (info, "notify");
+ g_assert (siginfo != NULL);
+ g_base_info_unref (siginfo);
+ g_base_info_unref (info);
+
/* vfunc tests */
{
GIVFuncInfo *vfunc;