X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a71d815bbe669ebb9bdb9409926a272c37a5a9aa..07225d48b60f88c78dd643bc7c984c3930db3544:/src/msw/toplevel.cpp diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index f5689a3aab..c1bba3066e 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -315,9 +315,13 @@ WXHWND wxTopLevelWindowMSW::MSWGetParent() const #if defined(__SMARTPHONE__) || defined(__POCKETPC__) bool wxTopLevelWindowMSW::HandleSettingChange(WXWPARAM wParam, WXLPARAM lParam) { - SHACTIVATEINFO* info = (SHACTIVATEINFO*) m_activateInfo; - if (!info) return false; - return SHHandleWMSettingChange(GetHwnd(), wParam, lParam, info) == TRUE; + SHACTIVATEINFO *info = (SHACTIVATEINFO*) m_activateInfo; + if ( info ) + { + SHHandleWMSettingChange(GetHwnd(), wParam, lParam, info); + } + + return wxWindowMSW::HandleSettingChange(wParam, lParam); } #endif @@ -345,11 +349,6 @@ WXLRESULT wxTopLevelWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WX break; } - case WM_SETTINGCHANGE: - { - processed = HandleSettingChange(wParam,lParam); - break; - } case WM_HIBERNATE: { if (wxTheApp) @@ -705,17 +704,21 @@ void wxTopLevelWindowMSW::Maximize(bool maximize) } else // hidden { - // we can't maximize the hidden frame because it shows it as well, so - // just remember that we should do it later in this case + // we can't maximize the hidden frame because it shows it as well, + // so just remember that we should do it later in this case m_maximizeOnShow = maximize; // after calling Maximize() the client code expects to get the frame // "real" size and doesn't want to know that, because of implementation // details, the frame isn't really maximized yet but will be only once // it's shown, so return our size as it will be then in this case - - // we don't know which display we're on yet so use the default one - SetSize(wxGetClientDisplayRect().GetSize()); + if ( maximize ) + { + // unfortunately we don't know which display we're on yet so we + // have to use the default one + SetSize(wxGetClientDisplayRect().GetSize()); + } + //else: can't do anything in this case, we don't have the old size } } @@ -738,10 +741,11 @@ bool wxTopLevelWindowMSW::IsIconized() const #ifdef __WXWINCE__ return false; #else - // also update the current state - ((wxTopLevelWindowMSW *)this)->m_iconized = ::IsIconic(GetHwnd()) != 0; - - return m_iconized; + // don't use m_iconized, it may be briefly out of sync with the real state + // as it's only modified when we receive a WM_SIZE and we could be called + // from an event handler from one of the messages we receive before it, + // such as WM_MOVE + return ::IsIconic(GetHwnd()) != 0; #endif } @@ -1090,8 +1094,8 @@ void wxTopLevelWindowMSW::OnActivate(wxActivateEvent& event) LONG APIENTRY _EXPORT wxDlgProc(HWND hDlg, UINT message, - WPARAM wParam, - LPARAM lParam) + WPARAM WXUNUSED(wParam), + LPARAM WXUNUSED(lParam)) { switch ( message ) { @@ -1123,18 +1127,6 @@ wxDlgProc(HWND hDlg, // ourselves, we return FALSE for it as well return FALSE; } - - case WM_SETTINGCHANGE: - { -#if defined(__SMARTPHONE__) || defined(__POCKETPC__) - wxTopLevelWindow *tlw = wxDynamicCast(wxGetWindowFromHWND(hDlg), wxTopLevelWindow); - if(tlw) return tlw->HandleSettingChange(wParam,lParam) ? TRUE : FALSE; -#else - wxUnusedVar(wParam); - wxUnusedVar(lParam); -#endif - break; - } } // for almost all messages, returning FALSE means that we didn't process