From d31e96aa5741f893b6c20556bda79c06db7b35c1 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Fri, 24 Jun 2016 23:23:20 -0400 Subject: [PATCH] Make tabbing between toolbar buttons work on Mac --- src/widgets/AButton.cpp | 9 +++++++++ src/widgets/AButton.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/widgets/AButton.cpp b/src/widgets/AButton.cpp index 3afae75d6..d1ca98113 100644 --- a/src/widgets/AButton.cpp +++ b/src/widgets/AButton.cpp @@ -242,6 +242,15 @@ void AButton::UseDisabledAsDownHiliteImage(bool flag) mUseDisabledAsDownHiliteImage = flag; } +// This compensates for a but in wxWidgets 3.0.2 for mac: +// Couldn't set focus from keyboard when AcceptsFocus returns false; +// this bypasses that limitation +void AButton::SetFocusFromKbd() +{ + auto temp = AButton::TemporarilyAllowFocus(); + SetFocus(); +} + void AButton::SetAlternateImages(unsigned idx, wxImage up, wxImage over, diff --git a/src/widgets/AButton.h b/src/widgets/AButton.h index a57d5af54..af071e06c 100644 --- a/src/widgets/AButton.h +++ b/src/widgets/AButton.h @@ -59,6 +59,8 @@ class AButton final : public wxWindow { bool AcceptsFocus() const override { return s_AcceptsFocus; } bool AcceptsFocusFromKeyboard() const override { return true; } + void SetFocusFromKbd() override; + // Associate a set of four images (button up, highlight, button down, // disabled) with one nondefault state of the button void SetAlternateImages(unsigned idx,