Redo focus handling in treeview once more

The fix for bug 767468 had some unintended side-effects. This is
an attempt at doing the same fix (don't grab focus when we are
grab-shadowed), while avoiding the breakage, by using GTK+'s
internal tracking for grab-shadowed-ness.

https://bugzilla.gnome.org/show_bug.cgi?id=770508
This commit is contained in:
Matthias Clasen 2016-09-11 11:47:55 -04:00
parent d7b446ec06
commit 29faa2db44

View File

@ -3050,11 +3050,10 @@ static void
grab_focus_and_unset_draw_keyfocus (GtkTreeView *tree_view)
{
GtkWidget *widget = GTK_WIDGET (tree_view);
GtkWidget *grab_widget = gtk_grab_get_current ();
if (gtk_widget_get_can_focus (widget) &&
!gtk_widget_has_focus (widget) &&
(!grab_widget || grab_widget == widget))
!_gtk_widget_get_shadowed (widget))
gtk_widget_grab_focus (widget);
tree_view->priv->draw_keyfocus = 0;