From 1e9e4113e9ddec351d62a70aec383264e3b39433 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Wed, 28 Mar 2012 09:13:40 +0000 Subject: [PATCH] adding correct behavior for move events as the are issued under OSX git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/aui/floatpane.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/aui/floatpane.cpp b/src/aui/floatpane.cpp index 343ab6eb78..f33966740a 100644 --- a/src/aui/floatpane.cpp +++ b/src/aui/floatpane.cpp @@ -216,6 +216,9 @@ void wxAuiFloatingFrame::OnMoveEvent(wxMoveEvent& event) return; } + // as on OSX moving windows are not getting all move events, only sporadically, this difference + // is almost always big on OSX, so avoid this early exit opportunity +#ifndef __WXOSX__ // skip if moving too fast to avoid massive redraws and // jumping hint windows if ((abs(winRect.x - m_lastRect.x) > 3) || @@ -235,6 +238,7 @@ void wxAuiFloatingFrame::OnMoveEvent(wxMoveEvent& event) return; } +#endif // prevent frame redocking during resize if (m_lastRect.GetSize() != winRect.GetSize()) @@ -281,7 +285,10 @@ void wxAuiFloatingFrame::OnMoveEvent(wxMoveEvent& event) if (m_last3Rect.IsEmpty()) return; - OnMoving(event.GetRect(), dir); + if ( event.GetEventType() == wxEVT_MOVING ) + OnMoving(event.GetRect(), dir); + else + OnMoving(wxRect(event.GetPosition(),GetSize()), dir); } void wxAuiFloatingFrame::OnIdle(wxIdleEvent& event) -- 2.47.2