AdwSplitButton crashes when placed in a revealer
When using an AdwSplitButton in a GtkRevealer, the update_state() functions crashes the app after the revealer is closed.
The SplitButton must be interacted with, either by opening the popover, or by clicking the button. Leaving it alone does not cause a crash
Backtrace:
Thread 1 "endeavour" received signal SIGSEGV, Segmentation fault.
0x00007ffff795aa86 in gtk_widget_get_state_flags () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
> bt
#0 0x00007ffff795aa86 in gtk_widget_get_state_flags () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#1 0x00007ffff7249e10 in update_state () at /usr/lib/x86_64-linux-gnu/libadwaita-1.so.0
#2 0x00007ffff7358502 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3 0x00007ffff736d1c8 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4 0x00007ffff7374135 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5 0x00007ffff7374303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007ffff795d9da in gtk_widget_propagate_state () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#7 0x00007ffff795ddc5 in gtk_widget_update_state_flags () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#8 0x00007ffff7977052 in synthesize_focus_change_events () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#9 0x00007ffff7977317 in gtk_window_root_set_focus () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7955c40 in gtk_widget_grab_focus_self () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff78153df in gtk_list_box_row_grab_focus () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff7815a78 in gtk_list_box_row_focus () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#13 0x00007ffff7814f2c in gtk_list_box_focus () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#16 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#17 0x00007ffff788d0b5 in gtk_scrolled_window_focus () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#18 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#19 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#20 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#21 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#22 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#23 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#24 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#25 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#26 0x00007ffff796cff3 in gtk_widget_focus_move () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#27 0x00007ffff727b67e in adw_widget_focus_child () at /usr/lib/x86_64-linux-gnu/libadwaita-1.so.0
#28 0x00007ffff7977517 in gtk_window_focus () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#29 0x00007ffff79733fa in after_paint () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#30 0x00007ffff7358502 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff736d1c8 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007ffff7374135 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#33 0x00007ffff7374303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#34 0x00007ffff7a8aa4f in gdk_frame_clock_paint_idle () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#35 0x00007ffff7a8ab6c in gdk_frame_clock_flush_idle () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#36 0x00007ffff7eda2cf in g_timeout_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff7ed95d1 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ffff7ed9b28 in g_main_context_iterate.constprop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007ffff7ed9bc3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ffff74a0b4d in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#41 0x0000555555571209 in main (argc=2, argv=0x7fffffffe538) at ../src/main.c:42
Edited by Jamie Murphy