X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94e8d77cbb22041c133edaa00720dff0de45a68a..7b4fde8255e2c5495b5c7c2b3234d19ac8c1e7cf:/src/msw/toplevel.cpp diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index c8681d5611..e861e661ef 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -326,9 +326,9 @@ WXLRESULT wxTopLevelWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WX WXLRESULT rc = 0; bool processed = false; +#if defined(__SMARTPHONE__) || defined(__POCKETPC__) switch ( message ) { -#if defined(__SMARTPHONE__) || defined(__POCKETPC__) case WM_ACTIVATE: { SHACTIVATEINFO* info = (SHACTIVATEINFO*) m_activateInfo; @@ -360,8 +360,8 @@ WXLRESULT wxTopLevelWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WX } break; } -#endif } +#endif if ( !processed ) rc = wxTopLevelWindowBase::MSWWindowProc(message, wParam, lParam); @@ -705,17 +705,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 +742,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 } @@ -884,7 +889,7 @@ void wxTopLevelWindowMSW::SetIcons(const wxIconBundle& icons) { wxTopLevelWindowBase::SetIcons(icons); -#if defined(__WIN95__) && !defined(__WXMICROWIN__) +#if !defined(__WXMICROWIN__) const wxIcon& sml = icons.GetIcon( wxSize( 16, 16 ) ); if( sml.Ok() && sml.GetWidth() == 16 && sml.GetHeight() == 16 ) { @@ -898,7 +903,7 @@ void wxTopLevelWindowMSW::SetIcons(const wxIconBundle& icons) ::SendMessage( GetHwndOf( this ), WM_SETICON, ICON_BIG, (LPARAM)GetHiconOf(big) ); } -#endif // __WIN95__ +#endif // !__WXMICROWIN__ } bool wxTopLevelWindowMSW::EnableCloseButton(bool enable) @@ -1124,13 +1129,17 @@ wxDlgProc(HWND hDlg, return FALSE; } -#if defined(__SMARTPHONE__) || defined(__POCKETPC__) 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