Gtk-CRITICAL in icon view when folder-specific settings are enabled
When entering a folder which is displayed in icon-view, the following critical message is shown:
(thunar:72413): Gtk-CRITICAL **: 00:33:32.131: gtk_tree_selection_get_select_function: assertion 'GTK_IS_TREE_SELECTION (selection)' failed
Using --enable-debug=full
to build and gdb shows the following stack trace:
#0 0x00007ffff7137332 in g_logv () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007ffff713759f in g_log () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff7aab262 in gtk_tree_selection_get_select_function () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#3 0x00007ffff7fab78e in exo_tree_view_button_press_event (widget=0x555555c51cb0, event=<optimized out>) at exo-tree-view.c:363
#4 0x00007ffff7b2e90b in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#5 0x00007ffff72210a2 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007ffff7232e6e in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007ffff7239259 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007ffff7239c3f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9 0x00007ffff7ad8d04 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#10 0x00007ffff798be00 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007ffff798da63 in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007ffff7676785 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#13 0x00007ffff76aa2e2 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#14 0x00007ffff712fe6b in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff7130118 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff71301cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff7346545 in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#18 0x000055555558e374 in main (argc=2, argv=0x7fffffffe0a8) at main.c:86
The problem seems to be, that gtk_tree_view_get_selection returns NULL. According to the gtk-doc, it should not do that.
Adding a NULL check seems to fix the critical:
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
if(selection != NULL)
{
/* Re-enable selection updates */
if (G_LIKELY (gtk_tree_selection_get_select_function (selection) == (GtkTreeSelectionFunc) (void (*)(void)) exo_noop_false))
{
gtk_tree_selection_set_select_function (selection, (GtkTreeSelectionFunc) (void (*)(void)) exo_noop_true, NULL, NULL);
}
}
.. though not sure if that would be a proper fix