-
- wxRect contentRect(newContentRect.left , newContentRect.top ,
- newContentRect.right - newContentRect.left ,
- newContentRect.bottom - newContentRect.top) ;
-
- bool handled = false ;
- if ((attributes & kWindowBoundsChangeSizeChanged) != 0)
- {
- wxSizeEvent event(contentRect , toplevelWindow->GetId());
- event.SetEventObject(toplevelWindow);
- handled = toplevelWindow->GetEventHandler()->ProcessEvent(event);
- contentRect = event.GetRect() ;
- }
- else if ( attributes & kWindowBoundsChangeOriginChanged != 0)
- {
- wxMoveEvent event(contentRect , toplevelWindow->GetId());
- event.SetEventObject(toplevelWindow);
- handled = toplevelWindow->GetEventHandler()->ProcessEvent(event);
- contentRect = event.GetRect() ;
- }
- if ( handled )
+
+ wxSize formerSize = toplevelWindow->GetSize() ;
+
+ if ( (attributes & kWindowBoundsChangeSizeChanged ) ||
+ ( attributes & kWindowBoundsChangeOriginChanged ) )
+ toplevelWindow->SetSize( newContentRect.left , newContentRect.top ,
+ newContentRect.right - newContentRect.left ,
+ newContentRect.bottom - newContentRect.top, wxSIZE_USE_EXISTING);
+
+ int x , y , w , h ;
+ toplevelWindow->GetPosition( &x , &y ) ;
+ toplevelWindow->GetSize( &w , &h ) ;
+ Rect adjustedRect = { y , x , y + h , x + w } ;
+
+ if ( !EqualRect( &newContentRect , &adjustedRect ) )