]> git.saurik.com Git - wxWidgets.git/commitdiff
Also apply second part of patch for preventing
authorRobert Roebling <robert@roebling.de>
Wed, 1 Nov 2006 12:17:01 +0000 (12:17 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 1 Nov 2006 12:17:01 +0000 (12:17 +0000)
   aui crashes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/aui/framemanager.cpp

index 2d245c525fd847e9f49ee48c103668442dcfe92c..efe9c09218fccb2c084a7ce090ff1f664c3dd080 100644 (file)
@@ -970,6 +970,9 @@ bool wxFrameManager::DetachPane(wxWindow* window)
                     p.frame->Show(false);
 
                 // reparent to m_frame and destroy the pane
+                if(m_action_window == p.frame) {
+                    m_action_window = NULL;
+                }
                 p.window->Reparent(m_frame);
                 p.frame->SetSizer(NULL);
                 p.frame->Destroy();
@@ -2091,6 +2094,9 @@ void wxFrameManager::Update()
                 p.frame->Show(false);
 
             // reparent to m_frame and destroy the pane
+            if(m_action_window == p.frame) {
+                m_action_window = NULL;
+            }
             p.window->Reparent(m_frame);
             p.frame->SetSizer(NULL);
             p.frame->Destroy();
@@ -3820,6 +3826,7 @@ void wxFrameManager::OnMotion(wxMouseEvent& event)
                     wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
                     pane_info->floating_pos = wxPoint(pt.x - m_action_offset.x,
                                                       pt.y - m_action_offset.y);
+
                     // float the window
                     pane_info->Float();
                     Update();
@@ -3845,9 +3852,11 @@ void wxFrameManager::OnMotion(wxMouseEvent& event)
     }
     else if (m_action == actionDragFloatingPane)
     {
-        wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
-        m_action_window->Move(pt.x - m_action_offset.x,
-                             pt.y - m_action_offset.y);
+        if(m_action_window) {
+            wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
+            m_action_window->Move(pt.x - m_action_offset.x,
+                                pt.y - m_action_offset.y);
+        }
     }
     else if (m_action == actionDragToolbarPane)
     {