window: Don't mark widget prematurely as has-focus
authorMatthias Clasen <mclasen@redhat.com>
Sat, 15 Apr 2023 12:58:57 +0000 (14:58 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 21 Apr 2023 07:20:44 +0000 (09:20 +0200)
has-focus is defined is-focus && toplevel::is-active.
We were forgetting to look at is_active when handling
focus widget changes.

gtk/gtkwindow.c

index dced97168b18bd836046a70375d41e7809a0992a..cf0fd50e3cb57b29a30e25905720ff334e44641e 100644 (file)
@@ -2023,7 +2023,7 @@ gtk_window_root_set_focus (GtkRoot   *root,
   synthesize_focus_change_events (self, old_focus, focus, GTK_CROSSING_FOCUS);
 
   if (focus)
-    gtk_widget_set_has_focus (focus, TRUE);
+    gtk_widget_set_has_focus (focus, priv->is_active);
 
   g_set_object (&priv->focus_widget, focus);