Segfault when switching location style after "Open Location"
Steps to repro (below are menu clicks):
- View -> Location Selector -> Entry Style
- Go -> Open Location
- View -> Location Selector -> Buttons Style
- GTK critical message and segfault
It seems that doing "Open Location" is key here: just switching the Location Selector setting back and forth on its own is fine. But if it's already set to "Entry", then you do "Open Location", and then try to switch it to "Buttons", it crashes.
(thunar:163674): Gtk-CRITICAL **: 22:56:37.949: gtk_container_get_focus_child: assertion 'GTK_IS_CONTAINER (container)' failed
Thread 1 "thunar" received signal SIGSEGV, Segmentation fault.
0x00007ffff797c266 in gtk_widget_unparent (widget=0x555555a24f30 [ThunarLocationEntry]) at ../../../gtk/gtkwidget.c:4680
Download failed: Invalid argument. Continuing without source file ./debian/build/deb/../../../gtk/gtkwidget.c.
4680 ../../../gtk/gtkwidget.c: No such file or directory.
(gdb) bt
#0 0x00007ffff797c266 in gtk_widget_unparent (widget=0x555555a24f30 [ThunarLocationEntry])
at ../../../gtk/gtkwidget.c:4680
#1 0x00007ffff76c72d3 in gtk_bin_remove
(container=0x7fffe801c1b0 [ThunarLocationBar], child=0x555555a24f30 [ThunarLocationEntry])
at ../../../gtk/gtkbin.c:151
#2 0x00007ffff7145611 in g_cclosure_marshal_VOID__OBJECTv
(closure=0x5555556e6ca0, return_value=<optimized out>, instance=0x7fffe801c1b0, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5555556e6cd0) at ../../../gobject/gmarshal.c:1910
#3 0x00007ffff71425a9 in _g_closure_invoke_va
(closure=closure@entry=0x5555556e6ca0, return_value=return_value@entry=0x0, instance=instance@entry=0x7fffe801c1b0, args=args@entry=0x7fffffffc3a0, n_params=1, param_types=0x5555556e6cd0) at ../../../gobject/gclosure.c:895
#4 0x00007ffff715bbbf in g_signal_emit_valist
(instance=0x7fffe801c1b0, signal_id=172, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc3a0)
at ../../../gobject/gsignal.c:3456
#5 0x00007ffff715bdbf in g_signal_emit
(instance=instance@entry=0x7fffe801c1b0, signal_id=<optimized out>, detail=detail@entry=0)
at ../../../gobject/gsignal.c:3606
#6 0x00007ffff771eb75 in gtk_container_remove
(container=0x7fffe801c1b0 [ThunarLocationBar], widget=0x555555a24f30 [ThunarLocationEntry])
at ../../../gtk/gtkcontainer.c:1907
#7 0x00005555555cd8bf in thunar_location_bar_install_widget
(bar=bar@entry=0x7fffe801c1b0 [ThunarLocationBar], type=type@entry=0x55555589f060 [ThunarLocationButtons/GtkContainer/GtkWidget/GInitiallyUnowned]) at thunar-location-bar.c:288
#8 0x00005555555cdabb in thunar_location_bar_settings_changed (bar=0x7fffe801c1b0 [ThunarLocationBar])
at thunar-location-bar.c:366
#12 0x00007ffff715bdbf in <emit signal notify:last-location-bar on instance 0x5555556b84f0 [ThunarPreferences]>
(instance=instance@entry=0x5555556b84f0, signal_id=<optimized out>, detail=<optimized out>)
at ../../../gobject/gsignal.c:3606
#9 0x00007ffff71423b0 in g_closure_invoke
(closure=0x555555811880, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffc690, invocation_hint=invocation_hint@entry=0x7fffffffc610) at ../../../gobject/gclosure.c:832
#10 0x00007ffff7155076 in signal_emit_unlocked_R
(node=node@entry=0x55555569ee90, detail=detail@entry=297, instance=instance@entry=0x5555556b84f0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc690)
at ../../../gobject/gsignal.c:3796
#11 0x00007ffff715bbf5 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc830) at ../../../gobject/gsignal.c:3549
#13 0x00007ffff71460f4 in g_object_dispatch_properties_changed
(object=0x5555556b84f0 [ThunarPreferences], n_pspecs=<optimized out>, pspecs=<optimized out>)
at ../../../gobject/gobject.c:1428
#14 0x00007ffff7146b1c in g_object_notify_queue_thaw
--Type <RET> for more, q to quit, c to continue without paging--
(object=object@entry=0x5555556b84f0 [ThunarPreferences], nqueue=nqueue@entry=0x555555b24ba0)
at ../../../gobject/gobject.c:359
#15 0x00007ffff714a49c in g_object_set_valist
(object=0x5555556b84f0 [ThunarPreferences], first_property_name=<optimized out>, var_args=0x7fffffffcad0)
at ../../../gobject/gobject.c:2775
#16 0x00007ffff714b11c in g_object_set
(_object=0x5555556b84f0, first_property_name=first_property_name@entry=0x55555563f210 "last-location-bar")
at ../../../gobject/gobject.c:2939
#17 0x00005555556197d3 in thunar_window_action_locationbar_buttons (window=0x555555898660 [ThunarWindow])
at thunar-window.c:3699
#21 0x00007ffff715bdbf in <emit signal ??? on instance 0x555555df1f80 [GtkCheckMenuItem]>
(instance=instance@entry=0x555555df1f80, signal_id=<optimized out>, detail=detail@entry=0)
at ../../../gobject/gsignal.c:3606
#18 0x00007ffff71423b0 in g_closure_invoke
(closure=0x555555e2c970, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffcd90, invocation_hint=invocation_hint@entry=0x7fffffffcd10) at ../../../gobject/gclosure.c:832
#19 0x00007ffff7155076 in signal_emit_unlocked_R
(node=node@entry=0x555555d82d70, detail=detail@entry=0, instance=instance@entry=0x555555df1f80, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcd90)
at ../../../gobject/gsignal.c:3796
#20 0x00007ffff715bbf5 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffcf10) at ../../../gobject/gsignal.c:3549
#22 0x00007ffff7703cbf in gtk_check_menu_item_toggled
(check_menu_item=check_menu_item@entry=0x555555df1f80 [GtkCheckMenuItem])
at ../../../gtk/gtkcheckmenuitem.c:473
#23 0x00007ffff7703cfb in gtk_check_menu_item_activate (menu_item=0x555555df1f80 [GtkCheckMenuItem])
at ../../../gtk/gtkcheckmenuitem.c:640
#24 0x00007ffff71425a9 in _g_closure_invoke_va
(closure=closure@entry=0x555555744750, return_value=return_value@entry=0x0, instance=instance@entry=0x555555df1f80, args=args@entry=0x7fffffffd200, n_params=0, param_types=0x0) at ../../../gobject/gclosure.c:895
#25 0x00007ffff715bbbf in g_signal_emit_valist
(instance=0x555555df1f80, signal_id=175, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd200)
at ../../../gobject/gsignal.c:3456
#26 0x00007ffff715bdbf in g_signal_emit
(instance=instance@entry=0x555555df1f80, signal_id=<optimized out>, detail=detail@entry=0)
at ../../../gobject/gsignal.c:3606
#27 0x00007ffff796bd04 in gtk_widget_activate (widget=widget@entry=0x555555df1f80 [GtkCheckMenuItem])
at ../../../gtk/gtkwidget.c:7845
#28 0x00007ffff781f0f6 in gtk_menu_shell_activate_item
(menu_shell=0x555555dea880 [GtkMenu], menu_item=0x555555df1f80 [GtkCheckMenuItem], force_deactivate=<optimized out>) at ../../../gtk/gtkmenushell.c:1375
--Type <RET> for more, q to quit, c to continue without paging--
#29 0x00007ffff781f431 in gtk_menu_shell_button_release (widget=<optimized out>, event=<optimized out>)
at ../../../gtk/gtkmenushell.c:791
#30 0x00007ffff768fca4 in _gtk_marshal_BOOLEAN__BOXEDv
(closure=0x55555573b940, return_value=0x7fffffffd510, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x55555573b970) at gtk/gtkmarshalers.c:130
#31 0x00007ffff71425a9 in _g_closure_invoke_va
(closure=closure@entry=0x55555573b940, return_value=return_value@entry=0x7fffffffd510, instance=instance@entry=0x555555dea880, args=args@entry=0x7fffffffd5e0, n_params=1, param_types=0x55555573b970)
at ../../../gobject/gclosure.c:895
#32 0x00007ffff715b05e in g_signal_emit_valist
(instance=0x555555dea880, signal_id=125, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd5e0)
at ../../../gobject/gsignal.c:3456
#33 0x00007ffff715bdbf in g_signal_emit
(instance=instance@entry=0x555555dea880, signal_id=<optimized out>, detail=detail@entry=0)
at ../../../gobject/gsignal.c:3606
#34 0x00007ffff7968ca4 in gtk_widget_event_internal
(widget=widget@entry=0x555555dea880 [GtkMenu], event=event@entry=0x7fffdc06b490)
at ../../../gtk/gtkwidget.c:7812
#35 0x00007ffff796b8e1 in gtk_widget_event_internal (event=0x7fffdc06b490, widget=0x555555dea880 [GtkMenu])
at ../../../gtk/gtkwidget.c:7383
#36 0x00007ffff7806f9e in propagate_event_up
(topmost=<optimized out>, event=<optimized out>, widget=0x555555dea880 [GtkMenu])
at ../../../gtk/gtkmain.c:2598
#37 propagate_event
(widget=widget@entry=0x555555df1f80 [GtkCheckMenuItem], event=event@entry=0x7fffdc06b490, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../../../gtk/gtkmain.c:2701
#38 0x00007ffff78082dc in gtk_propagate_event
(widget=widget@entry=0x555555df1f80 [GtkCheckMenuItem], event=event@entry=0x7fffdc06b490)
at ../../../gtk/gtkmain.c:2735
#39 0x00007ffff7808a56 in gtk_main_do_event (event=0x7fffdc06b490) at ../../../gtk/gtkmain.c:1921
#40 gtk_main_do_event (event=<optimized out>) at ../../../gtk/gtkmain.c:1691
#41 0x00007ffff7531b75 in _gdk_event_emit (event=event@entry=0x7fffdc06b490) at ../../../gdk/gdkevents.c:73
#42 0x00007ffff758b692 in gdk_event_source_dispatch
(source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
at ../../../gdk/x11/gdkeventsource.c:367
#43 0x00007ffff70497a9 in g_main_dispatch (context=0x5555556a76b0) at ../../../glib/gmain.c:3444
#44 g_main_context_dispatch (context=context@entry=0x5555556a76b0) at ../../../glib/gmain.c:4162
#45 0x00007ffff7049a38 in g_main_context_iterate
(context=context@entry=0x5555556a76b0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../../../glib/gmain.c:4238
#46 0x00007ffff7049acc in g_main_context_iteration
(context=context@entry=0x5555556a76b0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4303
--Type <RET> for more, q to quit, c to continue without paging--
#47 0x00007ffff726853d in g_application_run
(application=0x5555556c10f0 [ThunarApplication], argc=argc@entry=2, argv=argv@entry=0x7fffffffdaa8)
at ../../../gio/gapplication.c:2571
#48 0x000055555557ff32 in main (argc=2, argv=0x7fffffffdaa8) at main.c:86