X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/39cc7a0bae66d5b82ce9a9cc71a51f4efda52166..33754c4d83c59b7523a6da0c4fb21079cb60301c:/src/msw/toplevel.cpp diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index a7b917f9f1..9aacc56017 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -387,39 +387,30 @@ wxTopLevelWindowMSW::~wxTopLevelWindowMSW() } // ---------------------------------------------------------------------------- -// wxTopLevelWindowMSW geometry +// wxTopLevelWindowMSW client size // ---------------------------------------------------------------------------- void wxTopLevelWindowMSW::DoSetClientSize(int width, int height) { - HWND hWnd = GetHwnd(); - - RECT rectClient; - ::GetClientRect(hWnd, &rectClient); + // call GetClientAreaOrigin() to take the toolbar into account + wxPoint pt = GetClientAreaOrigin(); + width += pt.x; + height += pt.y; - RECT rectTotal; - ::GetWindowRect(hWnd, &rectTotal); + wxWindow::DoSetClientSize(width, height); +} - // Find the difference between the entire window (title bar and all) - // and the client area; add this to the new client size to move the - // window - width += rectTotal.right - rectTotal.left - rectClient.right; - height += rectTotal.bottom - rectTotal.top - rectClient.bottom; +void wxTopLevelWindowMSW::DoGetClientSize(int *x, int *y) const +{ + wxWindow::DoGetClientSize(x, y); - // note that calling GetClientAreaOrigin() takes the toolbar into account wxPoint pt = GetClientAreaOrigin(); - width += pt.x; - height += pt.y; - if ( !::MoveWindow(hWnd, rectTotal.left, rectTotal.top, - width, height, TRUE /* redraw */) ) - { - wxLogLastError(_T("MoveWindow")); - } + if ( x ) + *x -= pt.x; - wxSizeEvent event(wxSize(width, height), m_windowId); - event.SetEventObject(this); - (void)GetEventHandler()->ProcessEvent(event); + if ( y ) + *y -= pt.y; } // ----------------------------------------------------------------------------