forked from AuroraMiddleware/gtk
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
This commit is contained in:
parent
51799d41e4
commit
e33e23a6d9
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user