[gjs] overrides: Return value of default signal handler



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]