diff options
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewWindowManager.cs')
-rw-r--r-- | main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewWindowManager.cs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewWindowManager.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewWindowManager.cs index 3bdfa4f776..f694826222 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewWindowManager.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewWindowManager.cs @@ -47,10 +47,16 @@ namespace MonoDevelop.Debugger wnd = new PreviewVisualizerWindow (val, widget); IdeApp.CommandService.RegisterTopWindow (wnd); wnd.ShowPopup (widget, previewButtonArea, PopupPosition.Left); + wnd.FocusOutEvent += HandleFocusOutEvent; wnd.Destroyed += HandleDestroyed; OnWindowShown (EventArgs.Empty); } + private static void HandleFocusOutEvent (object o, Gtk.FocusOutEventArgs args) + { + DestroyWindow (); + } + static void HandleDestroyed (object sender, EventArgs e) { wnd = null; @@ -85,6 +91,8 @@ namespace MonoDevelop.Debugger public static void DestroyWindow () { if (wnd != null) { + wnd.FocusOutEvent -= HandleFocusOutEvent; + wnd.Destroyed -= HandleDestroyed; wnd.Destroy (); wnd = null; } |