From c1c9366c88c431cf2a86bbacf724a452f1f9d227 Mon Sep 17 00:00:00 2001 From: eusebiu Date: Sun, 31 Oct 2010 01:28:30 +0300 Subject: [PATCH] fix SD-1738 - Ctrl+Shift+Tab does not work in active files dialog --- src/Libraries/AvalonDock/AvalonDock/DockingManager.cs | 5 +++-- src/Libraries/AvalonDock/AvalonDock/NavigatorWindow.cs | 5 ++++- src/Main/Base/Project/Src/Commands/WindowCommands.cs | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Libraries/AvalonDock/AvalonDock/DockingManager.cs b/src/Libraries/AvalonDock/AvalonDock/DockingManager.cs index c130ba6ac8..5ad49fb8a4 100644 --- a/src/Libraries/AvalonDock/AvalonDock/DockingManager.cs +++ b/src/Libraries/AvalonDock/AvalonDock/DockingManager.cs @@ -1054,7 +1054,7 @@ namespace AvalonDock protected override void OnKeyDown(KeyEventArgs e) { - bool isCtrlDown = Keyboard.Modifiers == ModifierKeys.Control; + bool isCtrlDown = Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl); bool _navigatorWindowIsVisible = navigatorWindow != null ? navigatorWindow.IsVisible : false; Debug.WriteLine(string.Format("OnKeyDn {0} CtrlDn={1}", e.Key, isCtrlDown)); @@ -1078,7 +1078,7 @@ namespace AvalonDock protected override void OnKeyUp(KeyEventArgs e) { - bool isCtrlDown = Keyboard.Modifiers == ModifierKeys.Control; + bool isCtrlDown = Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl); bool _navigatorWindowIsVisible = navigatorWindow != null ? navigatorWindow.IsVisible : false; Debug.WriteLine(string.Format("OnKeyUp {0} CtrlDn={1}", e.Key, isCtrlDown)); @@ -1087,6 +1087,7 @@ namespace AvalonDock if (!_navigatorWindowIsVisible && e.Key == Key.Tab) { ShowNavigatorWindow(); + _navigatorWindowIsVisible = true; } if (_navigatorWindowIsVisible) diff --git a/src/Libraries/AvalonDock/AvalonDock/NavigatorWindow.cs b/src/Libraries/AvalonDock/AvalonDock/NavigatorWindow.cs index c37178ee19..df778ddbd7 100644 --- a/src/Libraries/AvalonDock/AvalonDock/NavigatorWindow.cs +++ b/src/Libraries/AvalonDock/AvalonDock/NavigatorWindow.cs @@ -196,7 +196,10 @@ namespace AvalonDock { if (key == Key.Tab) { - MoveToNextContent(); + if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)) + MoveToPreviousContent(); + else + MoveToNextContent(); return true; } else if (key == Key.Down) diff --git a/src/Main/Base/Project/Src/Commands/WindowCommands.cs b/src/Main/Base/Project/Src/Commands/WindowCommands.cs index 6e4ab0fc97..eec4d7e93d 100644 --- a/src/Main/Base/Project/Src/Commands/WindowCommands.cs +++ b/src/Main/Base/Project/Src/Commands/WindowCommands.cs @@ -11,7 +11,8 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null) { + if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || + WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count == 0) { return; } int index = WorkbenchSingleton.Workbench.WorkbenchWindowCollection.IndexOf(WorkbenchSingleton.Workbench.ActiveWorkbenchWindow); @@ -23,7 +24,8 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null) { + if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || + WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count == 0) { return; } int index = WorkbenchSingleton.Workbench.WorkbenchWindowCollection.IndexOf(WorkbenchSingleton.Workbench.ActiveWorkbenchWindow);