From 120b822df16ae27b64fe73b27d649cb89f166f46 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Tue, 12 Mar 2002 22:15:41 +0000 Subject: [PATCH] Added dialog tabbing to wxX11. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/x11/app.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/x11/app.cpp b/src/x11/app.cpp index 77427f4423..56b32f21aa 100644 --- a/src/x11/app.cpp +++ b/src/x11/app.cpp @@ -486,15 +486,28 @@ bool wxApp::ProcessXEvent(WXEvent* _event) // wxLogDebug( "OnKey from %s", win->GetName().c_str() ); - // We didn't process wxEVT_KEY_DOWN, so send - // wxEVT_CHAR - if (!win->GetEventHandler()->ProcessEvent( keyEvent )) + // We didn't process wxEVT_KEY_DOWN, so send wxEVT_CHAR + if (win->GetEventHandler()->ProcessEvent( keyEvent )) + return TRUE; + + keyEvent.SetEventType(wxEVT_CHAR); + if (win->GetEventHandler()->ProcessEvent( keyEvent )) + return TRUE; + + if ( (keyEvent.m_keyCode == WXK_TAB) && + win->GetParent() && (win->GetParent()->HasFlag( wxTAB_TRAVERSAL)) ) { - keyEvent.SetEventType(wxEVT_CHAR); - if (!win->GetEventHandler()->ProcessEvent( keyEvent )) - return FALSE; + wxNavigationKeyEvent new_event; + new_event.SetEventObject( win->GetParent() ); + /* GDK reports GDK_ISO_Left_Tab for SHIFT-TAB */ + new_event.SetDirection( (keyEvent.m_keyCode == WXK_TAB) ); + /* CTRL-TAB changes the (parent) window, i.e. switch notebook page */ + new_event.SetWindowChange( keyEvent.ControlDown() ); + new_event.SetCurrentFocus( win ); + return win->GetParent()->GetEventHandler()->ProcessEvent( new_event ); } - return TRUE; + + return FALSE; } case KeyRelease: { -- 2.45.2