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/trunk@76101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2014-03-09 14:05:02 +00:00
parent b1c33b0c21
commit 2b5574c6ea

View File

@ -3541,8 +3541,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)