- fgSetWindow( window );
- if( window->Callbacks.Reshape != NULL )
- window->Callbacks.Reshape( width, height );
- else
+ GetWindowRect( window->Window.Handle, &winRect );
+ x = winRect.left;
+ y = winRect.top;
+
+ if ( window->Parent == NULL )
+ {
+ /*
+ * Adjust the size of the window to allow for the size of the
+ * frame, if we are not a menu
+ */
+ if ( ! window->IsMenu )
+ {
+ width += GetSystemMetrics( SM_CXSIZEFRAME ) * 2;
+ height += GetSystemMetrics( SM_CYSIZEFRAME ) * 2 +
+ GetSystemMetrics( SM_CYCAPTION );
+ }
+ }
+ else
+ {
+ GetWindowRect( window->Parent->Window.Handle,
+ &winRect );
+ x -= winRect.left + GetSystemMetrics( SM_CXSIZEFRAME );
+ y -= winRect.top + GetSystemMetrics( SM_CYSIZEFRAME ) +
+ GetSystemMetrics( SM_CYCAPTION );
+ }
+
+ MoveWindow(
+ window->Window.Handle,
+ x,
+ y,
+ width,
+ height,
+ TRUE
+ );
+ }
+
+#endif
+
+ if( !( FETCH_WCB( *window, Reshape ) ) )
+ {
+ fgSetWindow( window );