diff options
author | David Karlaš <david.karlas@xamarin.com> | 2015-01-28 02:55:21 +0300 |
---|---|---|
committer | David Karlaš <david.karlas@xamarin.com> | 2015-01-28 02:55:21 +0300 |
commit | 32e0b96455fa7b4adf361058ebdd32c1fd6e6e27 (patch) | |
tree | a345e00844dfc4f6d85ec7698e373f2c3903a4a9 /main/src/addins/MonoDevelop.Debugger | |
parent | c8b2b1ceeb856e07aa3cc946bfc6b4549171eaab (diff) |
[Debugger] Immediate console is readonly if debugee is not paused
User can type text(commands) only when debugee is paused(breakpoint, paused, stepping, exception...)
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger')
-rw-r--r-- | main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs | 10 | ||||
-rw-r--r-- | main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs | 22 |
2 files changed, 32 insertions, 0 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs index 6038296e67..31e929b165 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs @@ -54,6 +54,16 @@ namespace MonoDevelop.Debugger CompletionWindowManager.WindowClosed += OnCompletionWindowClosed; } + public bool Editable { + get { + return TextView.Editable; + } + set { + TextView.CursorVisible = value; + TextView.Editable = value; + } + } + static bool IsCompletionChar (char c) { return (char.IsLetterOrDigit (c) || char.IsPunctuation (c) || char.IsSymbol (c) || char.IsWhiteSpace (c)); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs index 8a617b6b1c..0902c437eb 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs @@ -48,6 +48,10 @@ namespace MonoDevelop.Debugger view.ConsoleInput += OnViewConsoleInput; view.ShadowType = Gtk.ShadowType.None; view.ShowAll (); + view.Editable = DebuggingService.IsPaused; + DebuggingService.PausedEvent += DebuggerPaused; + DebuggingService.ResumedEvent += DebuggerResumed; + DebuggingService.StoppedEvent += DebuggerStopped; } void OnViewConsoleInput (object sender, ConsoleInputEventArgs e) @@ -262,6 +266,24 @@ namespace MonoDevelop.Debugger public void Dispose () { + DebuggingService.PausedEvent -= DebuggerPaused; + DebuggingService.ResumedEvent -= DebuggerResumed; + DebuggingService.StoppedEvent -= DebuggerStopped; + } + + void DebuggerResumed (object sender, EventArgs e) + { + view.Editable = false; + } + + void DebuggerPaused (object sender, EventArgs e) + { + view.Editable = true; + } + + void DebuggerStopped (object sender, EventArgs e) + { + view.Editable = false; } } } |