make sure FindFocus returns newly focused window immediately after SetFocus on 2.8 branch too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@52476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3254,6 +3254,20 @@ void wxWindowGTK::SetFocus()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setting "physical" focus is not immediate in GTK+ and while
|
||||||
|
// gtk_widget_is_focus ("determines if the widget is the focus widget
|
||||||
|
// within its toplevel", i.e. returns true for one widget per TLW, not
|
||||||
|
// globally) returns true immediately after grabbing focus,
|
||||||
|
// GTK_WIDGET_HAS_FOCUS (which returns true only for the one widget that
|
||||||
|
// has focus at the moment) takes affect only after the window is shown
|
||||||
|
// (if it was hidden at the moment of the call) or at the next event loop
|
||||||
|
// iteration.
|
||||||
|
//
|
||||||
|
// Because we want to FindFocus() call immediately following
|
||||||
|
// foo->SetFocus() to return foo, we have to keep track of "pending" focus
|
||||||
|
// ourselves.
|
||||||
|
g_focusWindow = this;
|
||||||
|
|
||||||
if (m_wxwindow)
|
if (m_wxwindow)
|
||||||
{
|
{
|
||||||
if (!GTK_WIDGET_HAS_FOCUS (m_wxwindow))
|
if (!GTK_WIDGET_HAS_FOCUS (m_wxwindow))
|
||||||
|
Reference in New Issue
Block a user