Hello, I want to format the date of the birthday Gtk.Entry on the fly so that if the user types eg. Jan 1, 2019 it will be converted to January 1, 2019. I have code to convert the date already but it seems signal insert_text is crashing on me even for the basic one (without changing anything). Here's my builder code: <object class="GtkEntry" id="birthday"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="has_frame">False</property> <property name="width_chars">19</property> <property name="placeholder_text" translatable="yes">ex. January 1, 2001</property> <signal name="insert_text" handler="on_birthday_insert_text" swapped="no"/> </object>
And here's my signal handler: [GtkCallback] private void on_birthday_insert_text(Gtk.Editable widget, string text, int length, ref int position) { GLib.SignalHandler.block_by_func(widget, (void *) on_birthday_insert_text, (void *) this); widget.insert_text(text, length, ref position); GLib.SignalHandler.unblock_by_func(widget, (void *) on_birthday_insert_text, (void *) this); GLib.Signal.stop_emission_by_name(widget, "insert_text"); } When I type anything in the entry it crashes with: Thread 1 "pcc" received signal SIGSEGV, Segmentation fault. 0x00007ffff7d5155a in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (gdb) bt #0 0x00007ffff7d5155a in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #1 0x00007ffff7d65544 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #2 0x00007ffff7d6e327 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #3 0x00007ffff7d6efa9 in g_signal_emit_by_name () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #4 0x000055555555aeda in pcc_window_on_birthday_insert_text (self=0x55555565ca70, widget=0x5555559e34c0, text=0x555555dc77a0 "x", length=1, position=0x7fffffffcb34) at ../../../../../../../../../Projects/pcc/src/window.vala:217 #5 0x000055555555af5f in _pcc_window_on_birthday_insert_text_gtk_editable_insert_text (_sender=0x5555559e34c0, new_text=0x555555dc77a0 "x", new_text_length=1, position=0x7fffffffcb34, self=0x55555565ca70) at ../../../../../../../../../Projects/pcc/src/window.vala:32 #6 0x00007ffff7d515e8 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #7 0x00007ffff7d65544 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #8 0x00007ffff7d6e327 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #9 0x00007ffff7d6efa9 in g_signal_emit_by_name () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 --Type <RET> for more, q to quit, c to continue without paging-- #10 0x000055555555aeda in pcc_window_on_birthday_insert_text (self=0x55555565ca70, widget=0x5555559e34c0, text=0x555555dc7780 "x", length=1, position=0x7fffffffcb34) at ../../../../../../../../../Projects/pcc/src/window.vala:217 #11 0x000055555555af5f in _pcc_window_on_birthday_insert_text_gtk_editable_insert_text (_sender=0x5555559e34c0, new_text=0x555555dc7780 "x", new_text_length=1, position=0x7fffffffcb34, self=0x55555565ca70) at ../../../../../../../../../Projects/pcc/src/window.vala:32 #12 0x00007ffff7d515e8 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #13 0x00007ffff7d65544 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #14 0x00007ffff7d6e327 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #15 0x00007ffff7d6efa9 in g_signal_emit_by_name () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #16 0x000055555555aeda in pcc_window_on_birthday_insert_text (self=0x55555565ca70, widget=0x5555559e34c0, text=0x555555dc7760 "x", length=1, position=0x7fffffffcb34) at ../../../../../../../../../Projects/pcc/src/window.vala:217 #17 0x000055555555af5f in _pcc_window_on_birthday_insert_text_gtk_editable_insert_text (_sender=0x5555559e34c0, new_text=0x555555dc7760 "x", new_text_length=1, position=0x7fffffffcb34, self=0x55555565ca70) at ../../../../../../../../../Projects/pcc/src/window.vala:32 #18 0x00007ffff7d515e8 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #19 0x00007ffff7d65544 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #20 0x00007ffff7d6e327 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #21 0x00007ffff7d6efa9 in g_signal_emit_by_name () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #22 0x000055555555aeda in pcc_window_on_birthday_insert_text So I guess it's not blocking since it goes to a loop. Please help. Thank you. All the best, Shem Pasamba _______________________________________________ vala-list mailing list vala-list@gnome.org https://mail.gnome.org/mailman/listinfo/vala-list