if (focus == priv->focus_widget)
{
- priv->move_focus = FALSE;
+ if (priv->move_focus &&
+ focus && gtk_widget_is_visible (focus))
+ priv->move_focus = FALSE;
return;
}
g_clear_object (&old_focus);
- priv->move_focus = FALSE;
+ if (priv->move_focus &&
+ focus && gtk_widget_is_visible (focus))
+ priv->move_focus = FALSE;
g_object_notify (G_OBJECT (self), "focus-widget");
}
break;
}
- parent = _gtk_widget_get_parent (parent);
+ parent = _gtk_widget_get_parent (parent);
}
}