diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 99bb28feb6..17beb19fa3 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -2011,6 +2011,8 @@ gtk_window_root_set_focus (GtkRoot *root, g_clear_object (&old_focus); + priv->move_focus = FALSE; + g_object_notify (G_OBJECT (self), "focus-widget"); } @@ -2288,6 +2290,8 @@ gtk_window_set_default_widget (GtkWindow *window, priv->default_widget = default_widget; + priv->unset_default = FALSE; + if (priv->default_widget) { if (priv->focus_widget == NULL || @@ -4671,16 +4675,10 @@ maybe_unset_focus_and_default (GtkWindow *window) GtkWindowPrivate *priv = gtk_window_get_instance_private (window); if (priv->move_focus) - { - gtk_widget_child_focus (GTK_WIDGET (window), GTK_DIR_TAB_FORWARD); - priv->move_focus = FALSE; - } + gtk_widget_child_focus (GTK_WIDGET (window), GTK_DIR_TAB_FORWARD); if (priv->unset_default) - { - gtk_window_set_default_widget (window, NULL); - priv->unset_default = FALSE; - } + gtk_window_set_default_widget (window, NULL); } static gboolean