From 28011280d0f96c18af8d386b64af4ca05d82d2c4 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sat, 2 Jul 2016 10:48:07 -0400 Subject: [PATCH] Tool bar resizes orig focus at mouse up or ESC key, at least on Mac --- src/toolbars/ToolBar.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/toolbars/ToolBar.cpp b/src/toolbars/ToolBar.cpp index 424b117e7..6c27b7514 100644 --- a/src/toolbars/ToolBar.cpp +++ b/src/toolbars/ToolBar.cpp @@ -87,6 +87,7 @@ private: ToolBar *mBar; wxPoint mResizeStart; wxSize mOrigSize; + wxWindow *mOrigFocus{}; DECLARE_EVENT_TABLE(); }; @@ -175,6 +176,9 @@ void ToolBarResizer::OnLeftUp( wxMouseEvent & event ) if( HasCapture() ) { ReleaseMouse(); + if (mOrigFocus) + mOrigFocus->SetFocus(); + mOrigFocus = nullptr; } } @@ -185,6 +189,8 @@ void ToolBarResizer::OnEnter( wxMouseEvent & event ) const auto text = GetToolTipText(); UnsetToolTip(); SetToolTip(text); + if (!mOrigFocus) + mOrigFocus = FindFocus(); } void ToolBarResizer::OnMotion( wxMouseEvent & event ) @@ -248,6 +254,9 @@ void ToolBarResizer::OnCaptureLost( wxMouseCaptureLostEvent & WXUNUSED(event) ) if( HasCapture() ) { ReleaseMouse(); + if (mOrigFocus) + mOrigFocus->SetFocus(); + mOrigFocus = nullptr; } } @@ -257,6 +266,9 @@ void ToolBarResizer::OnKeyDown(wxKeyEvent &event) if (HasCapture() && WXK_ESCAPE == event.GetKeyCode()) { ResizeBar( mOrigSize ); ReleaseMouse(); + if (mOrigFocus) + mOrigFocus->SetFocus(); + mOrigFocus = nullptr; } }