Browse Source

Fix copy shortcut working in Package Management console.

pull/28/head
Matt Ward 13 years ago
parent
commit
45646ca2da
  1. 8
      src/AddIns/BackendBindings/Scripting/Project/Src/ConsoleTextEditorKeyEventArgs.cs
  2. 7
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsole.cs
  3. 2
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleTextEditorKeyEventArgs.cs
  4. 9
      src/AddIns/BackendBindings/Scripting/Test/Console/ScriptingConsoleReadOnlyRegionsTests.cs
  5. 4
      src/AddIns/BackendBindings/Scripting/Test/Utils/FakeConsoleTextEditor.cs
  6. 4
      src/AddIns/BackendBindings/Scripting/Test/Utils/FakeConsoleTextEditorKeyEventArgs.cs

8
src/AddIns/BackendBindings/Scripting/Project/Src/ConsoleTextEditorKeyEventArgs.cs

@ -11,16 +11,22 @@ namespace ICSharpCode.Scripting
public abstract class ConsoleTextEditorKeyEventArgs : EventArgs public abstract class ConsoleTextEditorKeyEventArgs : EventArgs
{ {
Key key; Key key;
ModifierKeys modifiers;
public ConsoleTextEditorKeyEventArgs(Key key) public ConsoleTextEditorKeyEventArgs(Key key, ModifierKeys modifiers)
{ {
this.key = key; this.key = key;
this.modifiers = modifiers;
} }
public Key Key { public Key Key {
get { return key; } get { return key; }
} }
public ModifierKeys Modifiers {
get { return modifiers; }
}
public abstract bool Handled { public abstract bool Handled {
get; set; get; set;
} }

7
src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsole.cs

@ -136,11 +136,10 @@ namespace ICSharpCode.Scripting
/// </summary> /// </summary>
void ProcessPreviewKeyDown(object source, ConsoleTextEditorKeyEventArgs e) void ProcessPreviewKeyDown(object source, ConsoleTextEditorKeyEventArgs e)
{ {
Key keyPressed = e.Key; e.Handled = HandleKeyDown(e.Key, e.Modifiers);
e.Handled = HandleKeyDown(keyPressed);
} }
bool HandleKeyDown(Key keyPressed) bool HandleKeyDown(Key keyPressed, ModifierKeys keyModifiers)
{ {
if (textEditor.IsCompletionWindowDisplayed) { if (textEditor.IsCompletionWindowDisplayed) {
return false; return false;
@ -153,6 +152,8 @@ namespace ICSharpCode.Scripting
case Key.Up: case Key.Up:
case Key.Down: case Key.Down:
return false; return false;
case Key.C:
return keyModifiers != ModifierKeys.Control;
default: default:
return true; return true;
} }

2
src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleTextEditorKeyEventArgs.cs

@ -11,7 +11,7 @@ namespace ICSharpCode.Scripting
KeyEventArgs e; KeyEventArgs e;
public ScriptingConsoleTextEditorKeyEventArgs(KeyEventArgs e) public ScriptingConsoleTextEditorKeyEventArgs(KeyEventArgs e)
: base(e.Key) : base(e.Key, e.KeyboardDevice.Modifiers)
{ {
this.e = e; this.e = e;
} }

9
src/AddIns/BackendBindings/Scripting/Test/Console/ScriptingConsoleReadOnlyRegionsTests.cs

@ -155,5 +155,14 @@ namespace ICSharpCode.Scripting.Tests.Console
Assert.AreEqual(String.Empty, TestableScriptingConsole.GetCurrentLine()); Assert.AreEqual(String.Empty, TestableScriptingConsole.GetCurrentLine());
} }
[Test]
public void PreviewKeyDown_ControlCInReadOnlyRegion_HandledSetToFalseSoCopyInReadOnlyRegionAllowed()
{
FakeConsoleTextEditor.RaisePreviewKeyDownEventForDialogKey(Key.Left);
bool result = FakeConsoleTextEditor.RaisePreviewKeyDownEvent(Key.C, ModifierKeys.Control);
Assert.IsFalse(result);
}
} }
} }

4
src/AddIns/BackendBindings/Scripting/Test/Utils/FakeConsoleTextEditor.cs

@ -68,9 +68,9 @@ namespace ICSharpCode.Scripting.Tests.Utils
} }
} }
public bool RaisePreviewKeyDownEvent(Key key) public bool RaisePreviewKeyDownEvent(Key key, ModifierKeys modifiers = ModifierKeys.None)
{ {
FakeConsoleTextEditorKeyEventArgs e = new FakeConsoleTextEditorKeyEventArgs(key); FakeConsoleTextEditorKeyEventArgs e = new FakeConsoleTextEditorKeyEventArgs(key, modifiers);
OnPreviewKeyDown(e); OnPreviewKeyDown(e);
if (!e.Handled) { if (!e.Handled) {
KeyConverter converter = new KeyConverter(); KeyConverter converter = new KeyConverter();

4
src/AddIns/BackendBindings/Scripting/Test/Utils/FakeConsoleTextEditorKeyEventArgs.cs

@ -11,8 +11,8 @@ namespace ICSharpCode.Scripting.Tests.Utils
{ {
bool handled; bool handled;
public FakeConsoleTextEditorKeyEventArgs(Key key) public FakeConsoleTextEditorKeyEventArgs(Key key, ModifierKeys modifiers = ModifierKeys.None)
: base(key) : base(key, modifiers)
{ {
} }

Loading…
Cancel
Save