From c452930615b1300ccc335643ae2e318b4748bfd8 Mon Sep 17 00:00:00 2001 From: Kvaz1r Date: Mon, 14 Jun 2021 15:06:48 +0300 Subject: [PATCH 1/2] Fix floating for resizable auitoolbars --- src/aui/framemanager.cpp | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/aui/framemanager.cpp b/src/aui/framemanager.cpp index 246a89eefd..fee91a8116 100644 --- a/src/aui/framemanager.cpp +++ b/src/aui/framemanager.cpp @@ -3010,24 +3010,14 @@ bool wxAuiManager::DoDrop(wxAuiDockInfoArray& docks, if (!part->dock->fixed || part->dock->dock_direction == wxAUI_DOCK_CENTER || pt.x >= cli_size.x || pt.x <= 0 || pt.y >= cli_size.y || pt.y <= 0) { - if (m_lastRect.IsEmpty() || m_lastRect.Contains(pt.x, pt.y )) + if ((m_flags & wxAUI_MGR_ALLOW_FLOATING) && drop.IsFloatable()) { - m_skipping = true; + drop.Float(); } else { - if ((m_flags & wxAUI_MGR_ALLOW_FLOATING) && drop.IsFloatable()) - { - drop.Float(); - } - - m_skipping = false; - - return ProcessDockResult(target, drop); + drop.Position(pt.x - GetDockPixelOffset(drop) - offset.x); } - - drop.Position(pt.x - GetDockPixelOffset(drop) - offset.x); - return ProcessDockResult(target, drop); } From a0d67a3ca5d868d911575be1ea1f267da726d128 Mon Sep 17 00:00:00 2001 From: Kvaz1r Date: Mon, 14 Jun 2021 15:10:46 +0300 Subject: [PATCH 2/2] Remove redundant code --- include/wx/aui/framemanager.h | 1 - src/aui/framemanager.cpp | 3 --- 2 files changed, 4 deletions(-) diff --git a/include/wx/aui/framemanager.h b/include/wx/aui/framemanager.h index f910101346..feaa9a8aba 100644 --- a/include/wx/aui/framemanager.h +++ b/include/wx/aui/framemanager.h @@ -603,7 +603,6 @@ protected: wxRect m_lastHint; // last hint rectangle wxPoint m_lastMouseMove; // last mouse move position (see OnMotion) int m_currentDragItem; - bool m_skipping; bool m_hasMaximized; double m_dockConstraintX; // 0.0 .. 1.0; max pct of window width a dock can consume diff --git a/src/aui/framemanager.cpp b/src/aui/framemanager.cpp index fee91a8116..4ac289b5da 100644 --- a/src/aui/framemanager.cpp +++ b/src/aui/framemanager.cpp @@ -614,7 +614,6 @@ wxAuiManager::wxAuiManager(wxWindow* managed_wnd, unsigned int flags) m_art = new wxAuiDefaultDockArt; m_hintWnd = NULL; m_flags = flags; - m_skipping = false; m_hasMaximized = false; m_frame = NULL; m_dockConstraintX = 0.3; @@ -3021,8 +3020,6 @@ bool wxAuiManager::DoDrop(wxAuiDockInfoArray& docks, return ProcessDockResult(target, drop); } - m_skipping = false; - m_lastRect = part->dock->rect; m_lastRect.Inflate( m_frame->FromDIP(wxSize(15, 15)) );