@ -1024,71 +1024,51 @@ namespace AvalonDock
@@ -1024,71 +1024,51 @@ namespace AvalonDock
}
}
protected override void OnKeyDown ( KeyEventArgs e )
protected override void OnPreviewKeyDown ( KeyEventArgs e )
{
// accept Control or Control+Shift
bool isCtrlDown = ( Keyboard . Modifiers & ~ ModifierKeys . Shift ) = = ModifierKeys . Control ;
bool _ navigatorWindowIsVisible = navigatorWindow ! = null ? navigatorWindow . IsVisible : false ;
Debug . WriteLine ( string . Format ( "OnKeyDn {0} CtrlDn={1}" , e . Key , isCtrlDown ) ) ;
if ( e . Key = = Key . Tab & & isCtrlDown )
{
if ( ! _ navigatorWindowIsVisible )
{
if ( isCtrlDown ) {
if ( ! _ navigatorWindowIsVisible & & e . Key = = Key . Tab ) {
ShowNavigatorWindow ( ) ;
_ navigatorWindowIsVisible = true ;
}
e . Handled = true ;
}
else if ( NavigatorWindow . IsKeyHandled ( e . Key ) )
{
HideNavigatorWindow ( ) ;
if ( _ navigatorWindowIsVisible )
e . Handled = navigatorWindow . HandleKey ( e . Key ) ;
}
base . OnKeyDown ( e ) ;
base . OnPreviewKeyDown ( e ) ;
}
protected override void OnKeyUp ( KeyEventArgs e )
protected override void OnPreview KeyUp ( KeyEventArgs e )
{
// accept Control or Control+Shift
bool isCtrlDown = ( Keyboard . Modifiers & ~ ModifierKeys . Shift ) = = ModifierKeys . Control ;
bool _ navigatorWindowIsVisible = navigatorWindow ! = null ? navigatorWindow . IsVisible : false ;
Debug . WriteLine ( string . Format ( "OnKeyUp {0} CtrlDn={1}" , e . Key , isCtrlDown ) ) ;
if ( NavigatorWindow . IsKeyHandled ( e . Key ) & & isCtrlDown )
if ( ! isCtrlDown & & _ navigatorWindowIsVisible )
{
if ( ! _ navigatorWindowIsVisible & & e . Key = = Key . Tab )
if ( navigatorWindow . Documents . CurrentItem ! = null )
{
ShowNavigatorWindow ( ) ;
_ navigatorWindowIsVisible = true ;
var docSelected = ( navigatorWindow . Documents . CurrentItem as NavigatorWindowDocumentItem ) . ItemContent as DocumentContent ;
docSelected . Activate ( ) ;
}
if ( _ navigatorWindowIsVisible )
e . Handled = navigatorWindow . HandleKey ( e . Key ) ;
}
else
{
if ( _ navigatorWindowIsVisible )
else if ( navigatorWindow . DockableContents . CurrentItem ! = null )
{
if ( navigatorWindow . Documents . CurrentItem ! = null )
{
var docSelected = ( navigatorWindow . Documents . CurrentItem as NavigatorWindowDocumentItem ) . ItemContent as DocumentContent ;
docSelected . Activate ( ) ;
}
else if ( navigatorWindow . DockableContents . CurrentItem ! = null )
{
var cntSelected = ( navigatorWindow . DockableContents . CurrentItem as NavigatorWindowItem ) . ItemContent as DockableContent ;
cntSelected . Activate ( ) ;
}
HideNavigatorWindow ( ) ;
var cntSelected = ( navigatorWindow . DockableContents . CurrentItem as NavigatorWindowItem ) . ItemContent as DockableContent ;
cntSelected . Activate ( ) ;
}
HideNavigatorWindow ( ) ;
}
base . OnKeyUp ( e ) ;
base . OnPreviewKeyUp ( e ) ;
}
#region DockablePane operations