X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/601398b9b1e63109f44af34ff79bc558fe929b4d..3e7968c2dae5710f0f1efc43193fc985de7e6ba3:/src/aui/floatpane.cpp diff --git a/src/aui/floatpane.cpp b/src/aui/floatpane.cpp index ab81810d61..9fafc9976d 100644 --- a/src/aui/floatpane.cpp +++ b/src/aui/floatpane.cpp @@ -73,11 +73,9 @@ wxAuiFloatingFrame::wxAuiFloatingFrame(wxWindow* parent, wxAuiFloatingFrame::~wxAuiFloatingFrame() { // if we do not do this, then we can crash... - if(m_owner_mgr) + if (m_owner_mgr && m_owner_mgr->m_action_window == this) { - if(m_owner_mgr->m_action_window == this) - m_owner_mgr->m_action_window = NULL; - m_owner_mgr->UnregisterFloatingFrame(this); + m_owner_mgr->m_action_window = NULL; } m_mgr.UnInit(); @@ -146,6 +144,11 @@ void wxAuiFloatingFrame::SetPaneWindow(const wxAuiPaneInfo& pane) SetClientSize(size); } + + if (pane.IsFixed()) + { + SetWindowStyleFlag(GetWindowStyleFlag() & ~wxRESIZE_BORDER); + } } wxAuiManager* wxAuiFloatingFrame::GetOwnerManager() const @@ -153,17 +156,12 @@ wxAuiManager* wxAuiFloatingFrame::GetOwnerManager() const return m_owner_mgr; } -void wxAuiFloatingFrame::SetOwnerManager(wxAuiManager* owner_mgr) -{ - // we want to allow for NULL here to avoid crashing in dtor - m_owner_mgr = owner_mgr; -} -void wxAuiFloatingFrame::OnSize(wxSizeEvent& event) +void wxAuiFloatingFrame::OnSize(wxSizeEvent& WXUNUSED(event)) { if (m_owner_mgr) { - m_owner_mgr->OnFloatingPaneResized(m_pane_window, event.GetSize()); + m_owner_mgr->OnFloatingPaneResized(m_pane_window, GetRect()); } } @@ -216,6 +214,15 @@ void wxAuiFloatingFrame::OnMoveEvent(wxMoveEvent& event) m_last3_rect = m_last2_rect; m_last2_rect = m_last_rect; m_last_rect = win_rect; + + // However still update the internally stored position to avoid + // snapping back to the old one later. + if (m_owner_mgr) + { + m_owner_mgr->GetPane(m_pane_window). + floating_pos = win_rect.GetPosition(); + } + return; } @@ -325,7 +332,7 @@ void wxAuiFloatingFrame::OnActivate(wxActivateEvent& event) // functionality to wxWidgets itself) bool wxAuiFloatingFrame::isMouseDown() { - return wxGetMouseState().LeftDown(); + return wxGetMouseState().LeftIsDown(); }