From 72ae6daa1e4481210d11e63823271cfc87d8e385 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 9 Apr 2020 12:03:23 -0400 Subject: [PATCH] Move focus to the parent if a popover is dismissed This is better than just dropping focus altogether, and is expected behavior in most cases. --- gtk/gtkwindow.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 7e211aaa0f..707bd84b98 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -5740,7 +5740,16 @@ _gtk_window_unset_focus_and_default (GtkWindow *window, child = _gtk_widget_get_parent (child); if (child == widget) - gtk_window_set_focus (GTK_WINDOW (window), NULL); + { + GtkWidget *new_focus; + + if (GTK_IS_NATIVE (widget)) + new_focus = gtk_widget_get_parent (widget); + else + new_focus = NULL; + + gtk_window_set_focus (GTK_WINDOW (window), new_focus); + } } child = priv->default_widget;