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

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

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

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

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

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

@ -155,5 +155,14 @@ namespace ICSharpCode.Scripting.Tests.Console @@ -155,5 +155,14 @@ namespace ICSharpCode.Scripting.Tests.Console
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);
}
}
}

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

@ -28,14 +28,14 @@ namespace ICSharpCode.Scripting.Tests.Utils @@ -28,14 +28,14 @@ namespace ICSharpCode.Scripting.Tests.Utils
public StringBuilder PreviousLines = new StringBuilder();
public StringBuilder LineBuilder = new StringBuilder();
public event ConsoleTextEditorKeyEventHandler PreviewKeyDown;
public FakeConsoleTextEditor()
{
TotalLines = 1;
}
public void Dispose()
{
IsDisposed = true;
@ -68,9 +68,9 @@ namespace ICSharpCode.Scripting.Tests.Utils @@ -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);
if (!e.Handled) {
KeyConverter converter = new KeyConverter();
@ -174,7 +174,7 @@ namespace ICSharpCode.Scripting.Tests.Utils @@ -174,7 +174,7 @@ namespace ICSharpCode.Scripting.Tests.Utils
IsCompletionWindowDisplayed = true;
this.CompletionProviderPassedToShowCompletionWindow = completionDataProvider;
}
public void MakeCurrentContentReadOnly()
{
IsMakeCurrentContentReadOnlyCalled = true;

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

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

Loading…
Cancel
Save