Bad fix for http://bugzilla.xfce.org/show_bug.cgi?id=6230
This makes sure exo_noop_false is unset after parent's button handler has been called.
The bug is still there in the "restore previous selection" code.
diff -Nur exo-0.3.106/exo/exo-tree-view.c exo-0.3.106.new/exo/exo-tree-view.c
--- exo-0.3.106/exo/exo-tree-view.c 2009-12-12 13:19:12.000000000 +0100
+++ exo-0.3.106.new/exo/exo-tree-view.c 2010-04-16 23:43:51.212286473 +0200
@@ -373,6 +373,15 @@
/* call the parent's button press handler */
result = (*GTK_WIDGET_CLASS (exo_tree_view_parent_class)->button_press_event) (widget, event);
+ /* ugly fix for http://bugzilla.xfce.org/show_bug.cgi?id=6230 */
+ if (G_LIKELY (selection->user_func == (GtkTreeSelectionFunc) exo_noop_false))
+ {
+ /* just reset the select function (previously set to exo_noop_false),
+ * there's no clean way to do this, so what the heck.
+ */
+ selection->user_func = NULL;
+ }
+
/* restore previous selection if the path is still selected */
if (event->type == GDK_BUTTON_PRESS && (event->state & gtk_accelerator_get_default_mod_mask ()) == 0
&& path != NULL && gtk_tree_selection_path_is_selected (selection, path))