From a79ef0866bb14a31ad789c4a8750f66ec1d7ad64 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Thu, 30 Jul 2009 20:22:45 +0200 Subject: [PATCH] =?UTF-8?q?Bug=20555109=20=E2=80=93=20selection=20broken?= =?UTF-8?q?=20when=20typeahead=20active?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gtk_tree_view_enter_notify() now "ignores" the synthesized crossing events. The synthesized crossing events always have (0, 0) as coordinates, which messes things up. This patch does not fix all issues, at least it makes the behavior much more reasonable again. Watch bug 555109 for further discussion on the issue. --- gtk/gtktreeview.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 2cd794b01d..f090a74df2 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -5473,6 +5473,12 @@ gtk_tree_view_enter_notify (GtkWidget *widget, if (tree_view->priv->tree == NULL) return FALSE; + if (event->mode == GDK_CROSSING_GRAB || + event->mode == GDK_CROSSING_GTK_GRAB || + event->mode == GDK_CROSSING_GTK_UNGRAB || + event->mode == GDK_CROSSING_STATE_CHANGED) + return TRUE; + /* find the node internally */ new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y); if (new_y < 0)