]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girwriter: Output default handler of signals
authorRico Tzschichholz <ricotz@ubuntu.com>
Sat, 20 Feb 2021 19:04:08 +0000 (20:04 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sat, 27 Feb 2021 19:26:43 +0000 (20:26 +0100)
codegen/valagirwriter.vala
tests/girwriter/GirTest-1.0.gir-expected
tests/girwriter/girtest.vapigen-expected

index e32e1fdf6d393e0f741ba3766d6375d96192dde7..0f72d22339d5b6554fa458319f16602b08fb74cb 100644 (file)
@@ -1266,7 +1266,7 @@ public class Vala.GIRWriter : CodeVisitor {
                        tag_name = "function";
                }
 
-               if (!get_ccode_no_wrapper (m)) {
+               if (!get_ccode_no_wrapper (m) && m.signal_reference == null) {
                        write_signature (m, tag_name, true);
                }
 
@@ -1472,6 +1472,10 @@ public class Vala.GIRWriter : CodeVisitor {
                        sig.emitter.accept (this);
                }
 
+               if (sig.default_handler != null) {
+                       sig.default_handler.accept (this);
+               }
+
                write_indent ();
                buffer.append_printf ("<glib:signal name=\"%s\"", get_ccode_name (sig));
                write_symbol_attributes (sig);
index 6be6fd561f105d316b034127d16ee848b2e5eef5..18502ffc8a6edf8ff6b83f12cde0ddc16f21278c 100644 (file)
                                </parameter>
                        </parameters>
                </glib:signal>
+               <virtual-method name="signal_with_default_handlder" invoker="signal_with_default_handlder">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="i1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
                <glib:signal name="signal-with-default-handlder">
                        <return-value transfer-ownership="full">
                                <type name="none" c:type="void"/>
index af3c738624388892da6d8ffc4126f74dba600c06..1bb13d94d0002a92d30b279f8a1f14c2ac965c0e 100644 (file)
@@ -130,7 +130,7 @@ namespace GirTest {
                public string construct_only_property { construct; }
                public string some_property { get; set construct; }
                public string write_only_property { set; }
-               public signal void signal_with_default_handlder (int i1);
+               public virtual signal void signal_with_default_handlder (int i1);
                public signal void some_signal (int param);
        }
        [CCode (cheader_filename = "girtest.h", type_id = "gir_test_sub_type_test_get_type ()")]