[gjs] overrides: Return value of default signal handler
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs] overrides: Return value of default signal handler
- Date: Tue, 27 Oct 2015 22:56:41 +0000 (UTC)
commit a49282ec50a41641ea3f74ea9669c1315b571a91
Author: Philip Chimento <philip chimento gmail com>
Date: Wed Apr 30 13:04:20 2014 -0700
overrides: Return value of default signal handler
The return value of a default handler defined by having a method named
"on_signal_name" was previously ignored. This adds a test case and
fixes the problem.
https://bugzilla.gnome.org/show_bug.cgi?id=729288
installed-tests/js/testGObjectClass.js | 14 ++++++++++++++
modules/overrides/GObject.js | 2 +-
2 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/installed-tests/js/testGObjectClass.js b/installed-tests/js/testGObjectClass.js
index 9d512f0..3d95409 100644
--- a/installed-tests/js/testGObjectClass.js
+++ b/installed-tests/js/testGObjectClass.js
@@ -109,6 +109,11 @@ const MyObject = new GObject.Class({
on_empty: function() {
this.empty_called = true;
+ },
+
+ on_full: function() {
+ this.full_default_handler_called = true;
+ return 79;
}
});
@@ -242,6 +247,7 @@ function testSignals() {
let result = myInstance.emit_full();
JSUnit.assertEquals(true, ok);
+ JSUnit.assertUndefined(myInstance.full_default_handler_called);
JSUnit.assertEquals(42, result);
let stack = [ ];
@@ -337,4 +343,12 @@ function testClassCannotOverrideNonexistentProperty() {
}));
}
+function testDefaultHandler() {
+ let myInstance = new MyObject();
+ let result = myInstance.emit_full();
+
+ JSUnit.assertEquals(true, myInstance.full_default_handler_called);
+ JSUnit.assertEquals(79, result);
+}
+
JSUnit.gjstestRun(this, JSUnit.setUp, JSUnit.tearDown);
diff --git a/modules/overrides/GObject.js b/modules/overrides/GObject.js
index 4eedbd0..cc41485 100644
--- a/modules/overrides/GObject.js
+++ b/modules/overrides/GObject.js
@@ -96,7 +96,7 @@ const GObjectMeta = new Lang.Class({
let argArray = Array.prototype.slice.call(arguments);
let emitter = argArray.shift();
- wrapped.apply(emitter, argArray);
+ return wrapped.apply(emitter, argArray);
});
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]