1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-04 09:39:42 +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();
// 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;
}

View File

@ -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()

View File

@ -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;
}

View File

@ -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) {