Commit e33e23a6 authored by Carlos Garnacho's avatar Carlos Garnacho Committed by Matthias Clasen
Browse files

treeview: Ensure the treeview has the implicit grab before grabbing focus

The cellrenderer signals might be taking the grab somewhere else, at which
point it's dubious we should attempt to take the keyboard focus into the
treeview.

This concretely breaks popovers triggered from cellrenderer signals on
button press, because the treeview will attempt to grab focus
inconditionally then.

https://bugzilla.gnome.org/show_bug.cgi?id=767468
parent 51799d41
......@@ -3050,9 +3050,13 @@ 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))
if (gtk_widget_get_can_focus (widget) &&
!gtk_widget_has_focus (widget) &&
(!grab_widget || grab_widget == widget))
gtk_widget_grab_focus (widget);
tree_view->priv->draw_keyfocus = 0;
}
 
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment