1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-09 00:47:44 +02:00

Fix some tabbing issues on Linux

This commit is contained in:
Leland Lucius 2015-08-04 22:22:49 -05:00
parent b070053e0f
commit 7e49dc45d1
4 changed files with 22 additions and 43 deletions

View File

@ -410,7 +410,7 @@ void KeyConfigPrefs::OnHotkeyKeyDown(wxKeyEvent & e)
wxTextCtrl *t = (wxTextCtrl *)e.GetEventObject(); wxTextCtrl *t = (wxTextCtrl *)e.GetEventObject();
// Make sure we can navigate away from the hotkey textctrl. // 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. // to do it for Windows as well.
// //
// Mac note: Don't waste time trying to figure out why the // 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 // active, buttons on the Mac do not accept focus and all the
// controls between this one and the tree control are buttons. // controls between this one and the tree control are buttons.
if (e.GetKeyCode() == WXK_TAB) { if (e.GetKeyCode() == WXK_TAB) {
wxNavigationKeyEvent nevent; Navigate(e.ShiftDown()
nevent.SetWindowChange(e.ControlDown()); ? wxNavigationKeyEvent::IsBackward
nevent.SetDirection(!e.ShiftDown()); : wxNavigationKeyEvent::IsForward);
nevent.SetEventObject(t);
nevent.SetCurrentFocus(t);
t->GetParent()->GetEventHandler()->ProcessEvent(nevent);
return; return;
} }

View File

@ -46,6 +46,8 @@ BEGIN_EVENT_TABLE(AButton, wxWindow)
EVT_ERASE_BACKGROUND(AButton::OnErase) EVT_ERASE_BACKGROUND(AButton::OnErase)
END_EVENT_TABLE() END_EVENT_TABLE()
// LL: An alternative to this might be to just use the wxEVT_KILL_FOCUS
// or wxEVT_ACTIVATE events.
class AButton::Listener class AButton::Listener
: public wxEvtHandler : public wxEvtHandler
{ {
@ -464,16 +466,10 @@ void AButton::OnKeyDown(wxKeyEvent & event)
switch( event.GetKeyCode() ) switch( event.GetKeyCode() )
{ {
case WXK_RIGHT: case WXK_RIGHT:
Navigate(); NavigateIn(wxNavigationKeyEvent::IsForward);
break; break;
case WXK_LEFT: case WXK_LEFT:
Navigate(wxNavigationKeyEvent::IsBackward); NavigateIn(wxNavigationKeyEvent::IsBackward);
break;
case WXK_TAB:
if (event.ShiftDown())
Navigate(wxNavigationKeyEvent::IsBackward);
else
Navigate();
break; break;
case WXK_RETURN: case WXK_RETURN:
case WXK_NUMPAD_ENTER: case WXK_NUMPAD_ENTER:
@ -510,16 +506,18 @@ bool AButton::WasControlDown()
void AButton::Enable() void AButton::Enable()
{ {
wxWindow::Enable(true);
mEnabled = true; mEnabled = true;
this->Refresh(false); Refresh(false);
} }
void AButton::Disable() void AButton::Disable()
{ {
wxWindow::Enable(false);
mEnabled = false; mEnabled = false;
if (GetCapture()==this) if (GetCapture()==this)
ReleaseMouse(); ReleaseMouse();
this->Refresh(false); Refresh(false);
} }
void AButton::PushDown() void AButton::PushDown()

View File

@ -1070,17 +1070,11 @@ void LWSlider::OnKeyEvent(wxKeyEvent & event)
break; break;
case WXK_PAGEUP: case WXK_PAGEUP:
#if !wxCHECK_VERSION(2,7,0)
case WXK_PRIOR:
#endif
Increase( mScrollPage ); Increase( mScrollPage );
SendUpdate( mCurrentValue ); SendUpdate( mCurrentValue );
break; break;
case WXK_PAGEDOWN: case WXK_PAGEDOWN:
#if !wxCHECK_VERSION(2,7,0)
case WXK_NEXT:
#endif
Decrease( mScrollPage ); Decrease( mScrollPage );
SendUpdate( mCurrentValue ); SendUpdate( mCurrentValue );
break; break;
@ -1093,17 +1087,6 @@ void LWSlider::OnKeyEvent(wxKeyEvent & event)
SendUpdate( mMaxValue ); SendUpdate( mMaxValue );
break; 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_RETURN:
case WXK_NUMPAD_ENTER: case WXK_NUMPAD_ENTER:
{ {
@ -1122,8 +1105,10 @@ void LWSlider::OnKeyEvent(wxKeyEvent & event)
break; break;
} }
} }
else
event.Skip(); {
event.Skip();
}
} }
void LWSlider::SendUpdate( float newValue ) void LWSlider::SendUpdate( float newValue )
@ -1505,6 +1490,9 @@ bool ASlider::Enable(bool enable)
return false; return false;
mLWSlider->SetEnabled(enable); mLWSlider->SetEnabled(enable);
wxWindow::Enable(enable);
return true; return true;
} }

View File

@ -1732,13 +1732,9 @@ void NumericTextCtrl::OnKeyDown(wxKeyEvent &event)
} }
else if (keyCode == WXK_TAB) { else if (keyCode == WXK_TAB) {
wxWindow *parent = GetParent(); Navigate(event.ShiftDown()
wxNavigationKeyEvent nevent; ? wxNavigationKeyEvent::IsBackward
nevent.SetWindowChange(event.ControlDown()); : wxNavigationKeyEvent::IsForward);
nevent.SetDirection(!event.ShiftDown());
nevent.SetEventObject(parent);
nevent.SetCurrentFocus(parent);
GetParent()->GetEventHandler()->ProcessEvent(nevent);
} }
else if (keyCode == WXK_RETURN || keyCode == WXK_NUMPAD_ENTER) { else if (keyCode == WXK_RETURN || keyCode == WXK_NUMPAD_ENTER) {