+
+ // Seems to be a bug in DeferWindowPos such that going from (a) to (b) to (a)
+ // doesn't work (omits last position/size). So check if there's a disparity,
+ // and correct.
+ for ( wxWindowList::compatibility_iterator node = GetChildren().GetFirst();
+ node;
+ node = node->GetNext() )
+ {
+ wxWindow *child = node->GetData();
+ wxExtraWindowData* extraData = (wxExtraWindowData*) child->m_windowReserved;
+ if (extraData && extraData->m_deferring)
+ {
+ wxPoint pos = child->GetPosition();
+
+ if (extraData->m_pos != pos)
+ child->Move(extraData->m_pos);
+
+ extraData->m_deferring = false;
+ }
+ }