diff options
author | Cody Russell <cody@jhu.edu> | 2015-02-10 18:13:03 +0300 |
---|---|---|
committer | Cody Russell <cody@jhu.edu> | 2015-02-10 18:14:11 +0300 |
commit | b65dd5ab63964d14a6f477cc3fe25448aeef21e0 (patch) | |
tree | 6c39d468825a253c7c966c975ad6b2d0c5bde0d6 /main/src | |
parent | 352af9401d462b26a2556bc8e2149acdf9f9055a (diff) |
[Mac] Force dialog windows above native docking pads
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=26908
Diffstat (limited to 'main/src')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs index 7c3e5810db..3168e03a05 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs @@ -30,6 +30,7 @@ using System; using System.Xml; +using System.Linq; using System.Collections; using System.Collections.Generic; using Gtk; @@ -877,6 +878,15 @@ namespace MonoDevelop.Components.Docking Ide.DesktopService.AddChildWindow ((Gtk.Window)Toplevel, win); win.AcceptFocus = true; win.Opacity = 1.0; + + /* When we use real windows for frames, it's possible for pads to be over other + * windows. For some reason simply presenting or raising those dialogs doesn't + * seem to work, so we hide/show them in order to force them above the pad. */ + var toplevels = Gtk.Window.ListToplevels ().Where (t => t.IsRealized && t.TypeHint == WindowTypeHint.Dialog); // && t.TransientFor != null); + foreach (var t in toplevels) { + t.Hide (); + t.Show (); + } } else { w.Parent = this; w.Size = new Size (width, height); |