X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b7735e10f1f9dc889c9817a8066ef34e399328f..8f5e92dbe5b8adca2af32da6d43165b1c78dacfd:/src/common/wincmn.cpp diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp index 26cdbc173e..6ffcaea012 100644 --- a/src/common/wincmn.cpp +++ b/src/common/wincmn.cpp @@ -152,6 +152,7 @@ void wxWindowBase::InitBase() m_constraints = (wxLayoutConstraints *) NULL; m_constraintsInvolvedIn = (wxWindowList *) NULL; m_windowSizer = (wxSizer *) NULL; + m_containingSizer = (wxSizer *) NULL; m_autoLayout = FALSE; #endif // wxUSE_CONSTRAINTS @@ -257,6 +258,9 @@ wxWindowBase::~wxWindowBase() m_constraints = NULL; } + if ( m_containingSizer ) + m_containingSizer->Remove((wxWindow*)this); + if ( m_windowSizer ) delete m_windowSizer; @@ -1704,6 +1708,11 @@ void wxWindowBase::CaptureMouse() wxWindow *winOld = GetCapture(); if ( winOld ) { + // I think this is correct, but not compatible with some ports +#if defined(__WXX11__) || defined(__WXMGL__) + ((wxWindowBase*) winOld)->DoReleaseMouse(); +#endif + // save it on stack wxWindowNext *item = new wxWindowNext; item->win = winOld; @@ -1725,8 +1734,13 @@ void wxWindowBase::ReleaseMouse() if ( ms_winCaptureNext ) { + // I think this is correct, but not compatible with some ports +#if defined(__WXX11__) || defined(__WXMGL__) + ((wxWindowBase*)ms_winCaptureNext->win)->DoCaptureMouse(); +#else ms_winCaptureNext->win->CaptureMouse(); - +#endif + wxWindowNext *item = ms_winCaptureNext; ms_winCaptureNext = item->next; delete item;