From 7e49dc45d15874f8675c94e0657ab5d93cce614c Mon Sep 17 00:00:00 2001 From: Leland Lucius Date: Tue, 4 Aug 2015 22:22:49 -0500 Subject: [PATCH] Fix some tabbing issues on Linux --- src/prefs/KeyConfigPrefs.cpp | 11 ++++------- src/widgets/AButton.cpp | 18 ++++++++---------- src/widgets/ASlider.cpp | 26 +++++++------------------- src/widgets/NumericTextCtrl.cpp | 10 +++------- 4 files changed, 22 insertions(+), 43 deletions(-) diff --git a/src/prefs/KeyConfigPrefs.cpp b/src/prefs/KeyConfigPrefs.cpp index 9b80d2c27..8f56c48cc 100644 --- a/src/prefs/KeyConfigPrefs.cpp +++ b/src/prefs/KeyConfigPrefs.cpp @@ -410,7 +410,7 @@ void KeyConfigPrefs::OnHotkeyKeyDown(wxKeyEvent & e) wxTextCtrl *t = (wxTextCtrl *)e.GetEventObject(); // Make sure we can navigate away from the hotkey textctrl. - // On Linux and OSX, it an get stuck, but it doesn't hurt + // On Linux and OSX, it can get stuck, but it doesn't hurt // to do it for Windows as well. // // Mac note: Don't waste time trying to figure out why the @@ -418,12 +418,9 @@ void KeyConfigPrefs::OnHotkeyKeyDown(wxKeyEvent & e) // active, buttons on the Mac do not accept focus and all the // controls between this one and the tree control are buttons. if (e.GetKeyCode() == WXK_TAB) { - wxNavigationKeyEvent nevent; - nevent.SetWindowChange(e.ControlDown()); - nevent.SetDirection(!e.ShiftDown()); - nevent.SetEventObject(t); - nevent.SetCurrentFocus(t); - t->GetParent()->GetEventHandler()->ProcessEvent(nevent); + Navigate(e.ShiftDown() + ? wxNavigationKeyEvent::IsBackward + : wxNavigationKeyEvent::IsForward); return; } diff --git a/src/widgets/AButton.cpp b/src/widgets/AButton.cpp index f7da96b2d..d952d9d7a 100644 --- a/src/widgets/AButton.cpp +++ b/src/widgets/AButton.cpp @@ -46,6 +46,8 @@ BEGIN_EVENT_TABLE(AButton, wxWindow) EVT_ERASE_BACKGROUND(AButton::OnErase) END_EVENT_TABLE() +// LL: An alternative to this might be to just use the wxEVT_KILL_FOCUS +// or wxEVT_ACTIVATE events. class AButton::Listener : public wxEvtHandler { @@ -464,16 +466,10 @@ void AButton::OnKeyDown(wxKeyEvent & event) switch( event.GetKeyCode() ) { case WXK_RIGHT: - Navigate(); + NavigateIn(wxNavigationKeyEvent::IsForward); break; case WXK_LEFT: - Navigate(wxNavigationKeyEvent::IsBackward); - break; - case WXK_TAB: - if (event.ShiftDown()) - Navigate(wxNavigationKeyEvent::IsBackward); - else - Navigate(); + NavigateIn(wxNavigationKeyEvent::IsBackward); break; case WXK_RETURN: case WXK_NUMPAD_ENTER: @@ -510,16 +506,18 @@ bool AButton::WasControlDown() void AButton::Enable() { + wxWindow::Enable(true); mEnabled = true; - this->Refresh(false); + Refresh(false); } void AButton::Disable() { + wxWindow::Enable(false); mEnabled = false; if (GetCapture()==this) ReleaseMouse(); - this->Refresh(false); + Refresh(false); } void AButton::PushDown() diff --git a/src/widgets/ASlider.cpp b/src/widgets/ASlider.cpp index e8f9a6a61..08ec8a45d 100644 --- a/src/widgets/ASlider.cpp +++ b/src/widgets/ASlider.cpp @@ -1070,17 +1070,11 @@ void LWSlider::OnKeyEvent(wxKeyEvent & event) break; case WXK_PAGEUP: -#if !wxCHECK_VERSION(2,7,0) - case WXK_PRIOR: -#endif Increase( mScrollPage ); SendUpdate( mCurrentValue ); break; case WXK_PAGEDOWN: -#if !wxCHECK_VERSION(2,7,0) - case WXK_NEXT: -#endif Decrease( mScrollPage ); SendUpdate( mCurrentValue ); break; @@ -1093,17 +1087,6 @@ void LWSlider::OnKeyEvent(wxKeyEvent & event) SendUpdate( mMaxValue ); break; - case WXK_TAB: - { - wxNavigationKeyEvent nevent; - nevent.SetWindowChange( event.ControlDown() ); - nevent.SetDirection( !event.ShiftDown() ); - nevent.SetEventObject( mParent ); - nevent.SetCurrentFocus( mParent ); - mParent->GetParent()->GetEventHandler()->ProcessEvent(nevent); - } - break; - case WXK_RETURN: case WXK_NUMPAD_ENTER: { @@ -1122,8 +1105,10 @@ void LWSlider::OnKeyEvent(wxKeyEvent & event) break; } } - - event.Skip(); + else + { + event.Skip(); + } } void LWSlider::SendUpdate( float newValue ) @@ -1505,6 +1490,9 @@ bool ASlider::Enable(bool enable) return false; mLWSlider->SetEnabled(enable); + + wxWindow::Enable(enable); + return true; } diff --git a/src/widgets/NumericTextCtrl.cpp b/src/widgets/NumericTextCtrl.cpp index 9674345cd..a21605572 100644 --- a/src/widgets/NumericTextCtrl.cpp +++ b/src/widgets/NumericTextCtrl.cpp @@ -1732,13 +1732,9 @@ void NumericTextCtrl::OnKeyDown(wxKeyEvent &event) } else if (keyCode == WXK_TAB) { - wxWindow *parent = GetParent(); - wxNavigationKeyEvent nevent; - nevent.SetWindowChange(event.ControlDown()); - nevent.SetDirection(!event.ShiftDown()); - nevent.SetEventObject(parent); - nevent.SetCurrentFocus(parent); - GetParent()->GetEventHandler()->ProcessEvent(nevent); + Navigate(event.ShiftDown() + ? wxNavigationKeyEvent::IsBackward + : wxNavigationKeyEvent::IsForward); } else if (keyCode == WXK_RETURN || keyCode == WXK_NUMPAD_ENTER) {