diff options
4 files changed, 19 insertions, 1 deletions
diff --git a/.gitmodules b/.gitmodules index 2cca62b1a3..0cfa6fdd35 100644 --- a/.gitmodules +++ b/.gitmodules @@ -34,7 +34,7 @@ [submodule "main/external/xwt"] path = main/external/xwt url = git://github.com/mono/xwt - branch = master + branch = image-loader [submodule "main/external/monomac"] path = main/external/monomac url = git://github.com/mono/monomac.git diff --git a/main/external/xwt b/main/external/xwt -Subproject f56391609d68b107612378d6ace2c12ada179ed +Subproject 1246a86cf580a514e54e194b02559415cd7159c diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs index 24818e288e..a0bbcc5a49 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs @@ -50,11 +50,21 @@ namespace MonoDevelop.Debugger SetFont (IdeApp.Preferences.CustomOutputPadFont); TextView.KeyReleaseEvent += OnEditKeyRelease; + TextView.FocusOutEvent += TextView_FocusOutEvent; IdeApp.Preferences.CustomOutputPadFont.Changed += OnCustomOutputPadFontChanged; CompletionWindowManager.WindowClosed += OnCompletionWindowClosed; } + void TextView_FocusOutEvent(object o, Gtk.FocusOutEventArgs args) + { + // On Windows code completion popup stays TopMost also when switching to other apps + // but on Mac code completion window hides and shows when focus goes out and back in + // so no need to hide it on Mac for better UX + if (MonoDevelop.Core.Platform.IsWindows) + CompletionWindowManager.HideWindow (); + } + public bool Editable { get { return TextView.Editable; @@ -467,6 +477,7 @@ namespace MonoDevelop.Debugger IdeApp.Preferences.CustomOutputPadFont.Changed -= OnCustomOutputPadFontChanged; CompletionWindowManager.WindowClosed -= OnCompletionWindowClosed; CompletionWindowManager.HideWindow (); + TextView.FocusOutEvent -= TextView_FocusOutEvent; base.OnDestroyed (); } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs index 50a13171e1..fba2281c7e 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs @@ -99,6 +99,13 @@ namespace MonoDevelop.Ide.CodeCompletion if (ext != null) { var widget = ext.Editor.GetNativeWidget<Gtk.Widget> (); wnd.TransientFor = widget?.Parent?.Toplevel as Gtk.Window; + } else { + var widget = completionWidget as Gtk.Widget; + if (widget != null) { + var window = widget.Toplevel as Gtk.Window; + if (window != null) + wnd.TransientFor = window; + } } wnd.Extension = ext; |