From 67644c1dd83f2d025e061b84811eb9ba5612fd98 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Thu, 19 May 2005 22:17:01 +0000 Subject: [PATCH] Moved the pending pos and size into wxWindowMSW git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34183 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/window.h | 5 +++++ src/msw/window.cpp | 50 ++++++++++------------------------------- 2 files changed, 17 insertions(+), 38 deletions(-) diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index 4ad41e48fe..218bd938bd 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -494,6 +494,11 @@ private: // current defer window position operation handle (may be NULL) WXHANDLE m_hDWP; + // When deferred positioning is done these hold the pending changes, and + // are used for the default values if another size/pos changes is done on + // this window before the group of deferred changes is completed. + wxPoint m_pendingPosition; + wxSize m_pendingSize; DECLARE_DYNAMIC_CLASS(wxWindowMSW) DECLARE_NO_COPY_CLASS(wxWindowMSW) diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 950b149b59..74f33c7a39 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -231,28 +231,6 @@ bool GetCursorPosWinCE(POINT* pt) } #endif -// --------------------------------------------------------------------------- -// wxWindowExtraData -// --------------------------------------------------------------------------- - -#if USE_DEFER_BUG_WORKAROUND -// This class is used to hold additional data memebers that were added after -// the stable 2.6.0 release. They should be moved into wxWindow for 2.7 after -// binary compatibility is no longer being maintained. - -class wxWindowExtraData { -public: - wxWindowExtraData() - : m_pendingPosition(wxDefaultPosition), - m_pendingSize(wxDefaultSize) - {} - - wxPoint m_pendingPosition; - wxSize m_pendingSize; -}; - -#endif - // --------------------------------------------------------------------------- // event tables // --------------------------------------------------------------------------- @@ -488,9 +466,8 @@ void wxWindowMSW::Init() m_lastMouseEvent = -1; #endif // wxUSE_MOUSEEVENT_HACK -#if USE_DEFER_BUG_WORKAROUND - m_extraData = new wxWindowExtraData; -#endif + m_pendingPosition = wxDefaultPosition; + m_pendingSize = wxDefaultSize; } // Destructor @@ -539,9 +516,6 @@ wxWindowMSW::~wxWindowMSW() delete m_childrenDisabled; -#if USE_DEFER_BUG_WORKAROUND - delete m_extraData; -#endif } // real construction (Init() must have been called before!) @@ -1612,19 +1586,19 @@ void wxWindowMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags) int currentW, currentH; #if USE_DEFER_BUG_WORKAROUND - currentX = m_extraData->m_pendingPosition.x; + currentX = m_pendingPosition.x; if (currentX == wxDefaultCoord) GetPosition(¤tX, NULL); - currentY = m_extraData->m_pendingPosition.y; + currentY = m_pendingPosition.y; if (currentY == wxDefaultCoord) GetPosition(NULL, ¤tY); - currentW = m_extraData->m_pendingSize.x; + currentW = m_pendingSize.x; if (currentW == wxDefaultCoord) GetSize(¤tW, NULL); - currentH = m_extraData->m_pendingSize.y; + currentH = m_pendingSize.y; if (currentH == wxDefaultCoord) GetSize(NULL, ¤tH); #else @@ -1688,13 +1662,13 @@ void wxWindowMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags) HDWP hdwp = GetParent() && !IsTopLevel() ? (HDWP)GetParent()->m_hDWP : NULL; if (hdwp) { - m_extraData->m_pendingPosition = wxPoint(x, y); - m_extraData->m_pendingSize = wxSize(width, height); + m_pendingPosition = wxPoint(x, y); + m_pendingSize = wxSize(width, height); } else { - m_extraData->m_pendingPosition = wxDefaultPosition; - m_extraData->m_pendingSize = wxDefaultSize; + m_pendingPosition = wxDefaultPosition; + m_pendingSize = wxDefaultSize; } #endif @@ -4312,8 +4286,8 @@ bool wxWindowMSW::HandleSize(int WXUNUSED(w), int WXUNUSED(h), WXUINT wParam) node = node->GetNext() ) { wxWindow *child = node->GetData(); - child->m_extraData->m_pendingPosition = wxDefaultPosition; - child->m_extraData->m_pendingSize = wxDefaultSize; + child->m_pendingPosition = wxDefaultPosition; + child->m_pendingSize = wxDefaultSize; } #endif } -- 2.45.2