Make Move{Before,After}InTabOrder() work at any time in wxGTK.

These functions only worked if called at the beginning, before showing the
parent window containing the children whose TAB order was being adjusted,
because it didn't refresh the GTK+ TAB order on the correct window: we need to
do it for the parent of the window being moved, not this window itself.

Closes #16032.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-03-09 14:03:33 +00:00
parent f4bdf2b324
commit 96430b3f3d
2 changed files with 10 additions and 2 deletions

View File

@@ -3549,8 +3549,15 @@ wxWindowGTK::AdjustForLayoutDirection(wxCoord x,
void wxWindowGTK::DoMoveInTabOrder(wxWindow *win, WindowOrder move)
{
wxWindowBase::DoMoveInTabOrder(win, move);
m_dirtyTabOrder = true;
wxTheApp->WakeUpIdle();
// Update the TAB order at GTK+ level too, but do it slightly later in case
// we're changing the TAB order of several controls at once, as is common.
wxWindow* const parent = GetParent();
if ( parent )
{
parent->m_dirtyTabOrder = true;
wxTheApp->WakeUpIdle();
}
}
bool wxWindowGTK::DoNavigateIn(int flags)