]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wincmn.cpp
corrected double click events: wxMGL will now synthetize
[wxWidgets.git] / src / common / wincmn.cpp
index 26cdbc173e44b7d8ec5c09053fb60becf48f6270..6ffcaea012b9827bec575611f260bcc6d0c7315c 100644 (file)
@@ -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;