]> git.saurik.com Git - wxWidgets.git/blobdiff - src/aui/framemanager.cpp
Added wxDataViewCustomRenderer::RenderText() for renderer simple text in platform...
[wxWidgets.git] / src / aui / framemanager.cpp
index c40be51d1758681a70b79707562dc6d5d8b84541..7c552d924392fe666b2c29010ce9a035007364e1 100644 (file)
@@ -1093,8 +1093,7 @@ bool wxAuiManager::DetachPane(wxWindow* window)
     return false;
 }
 
     return false;
 }
 
-// ClosePane() destroys or hides the pane depending on its
-// flags
+// ClosePane() destroys or hides the pane depending on its flags
 void wxAuiManager::ClosePane(wxAuiPaneInfo& pane_info)
 {
     // if we were maximized, restore
 void wxAuiManager::ClosePane(wxAuiPaneInfo& pane_info)
 {
     // if we were maximized, restore
@@ -2089,6 +2088,8 @@ wxSizer* wxAuiManager::LayoutAll(wxAuiPaneInfoArray& panes,
                 dock.fixed = false;
             if (!pane.IsToolbar())
                 dock.toolbar = false;
                 dock.fixed = false;
             if (!pane.IsToolbar())
                 dock.toolbar = false;
+            if (pane.HasFlag(wxAuiPaneInfo::optionDockFixed))
+                dock.fixed = true;
             if (pane.state & wxAuiPaneInfo::actionPane)
                 action_pane_marked = true;
         }
             if (pane.state & wxAuiPaneInfo::actionPane)
                 action_pane_marked = true;
         }
@@ -3530,7 +3531,15 @@ void wxAuiManager::OnFloatingPaneClosed(wxWindow* wnd, wxCloseEvent& evt)
     }
     else
     {
     }
     else
     {
-        ClosePane(pane);
+        // close the pane, but check that it
+        // still exists in our pane array first
+        // (the event handler above might have removed it)
+
+        wxAuiPaneInfo& check = GetPane(wnd);
+        if (check.IsOk())
+        {
+            ClosePane(pane);
+        }
     }
 }
 
     }
 }
 
@@ -4341,7 +4350,16 @@ void wxAuiManager::OnPaneButton(wxAuiManagerEvent& evt)
 
         if (!e.GetVeto())
         {
 
         if (!e.GetVeto())
         {
-            ClosePane(pane);
+            // close the pane, but check that it
+            // still exists in our pane array first
+            // (the event handler above might have removed it)
+
+            wxAuiPaneInfo& check = GetPane(pane.window);
+            if (check.IsOk())
+            {
+                ClosePane(pane);
+            }
+            
             Update();
         }
     }
             Update();
         }
     }