diff options
author | Cody Russell <cody@jhu.edu> | 2014-08-12 00:32:23 +0400 |
---|---|---|
committer | Cody Russell <cody@jhu.edu> | 2014-08-13 01:18:48 +0400 |
commit | f4bb573b38a18c9f5400d8734eada2d5610deae4 (patch) | |
tree | 8a728b7a875c87b34d59461c4b914102578b8327 | |
parent | 1436f911d417b23c7b1503686ca3d10b09dc220d (diff) |
Hide the dockbars while we're displaying an overlay, because otherwisemonodevelop-5.3.0.423
there are issues with mouse clicks being eaten by the dockbars. For
example, when the welcome page is up the dockbar on the right eats
clicks when the user tries to grab the right scrollbar.
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=19445
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBar.cs | 16 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs | 23 |
2 files changed, 29 insertions, 10 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBar.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBar.cs index 686d3c0054..c3d7ae3c1a 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBar.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBar.cs @@ -146,13 +146,17 @@ namespace MonoDevelop.Components.Docking internal void UpdateVisibility () { - filler.Visible = (Frame.CompactGuiLevel < 3); - int visibleCount = 0; - foreach (Gtk.Widget w in box.Children) { - if (w.Visible) - visibleCount++; + if (Frame.OverlayWidgetVisible) { + Visible = false; + } else { + filler.Visible = (Frame.CompactGuiLevel < 3); + int visibleCount = 0; + foreach (Gtk.Widget w in box.Children) { + if (w.Visible) + visibleCount++; + } + Visible = alwaysVisible || filler.Visible || visibleCount > 0; } - Visible = alwaysVisible || filler.Visible || visibleCount > 0; } internal void RemoveItem (DockBarItem it) 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 9fabdf0597..e7b0619508 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs @@ -86,13 +86,16 @@ namespace MonoDevelop.Components.Docking mainBox.ShowAll (); mainBox.NoShowAll = true; CompactGuiLevel = 2; - dockBarTop.UpdateVisibility ();
- dockBarBottom.UpdateVisibility (); - dockBarLeft.UpdateVisibility (); - dockBarRight.UpdateVisibility (); + UpdateDockbarsVisibility (); DefaultVisualStyle = new DockVisualStyle (); } + + public bool DockbarsVisible { + get { + return !OverlayWidgetVisible; + } + } /// <summary> /// Compactness level of the gui, from 1 (not compact) to 5 (very compact). @@ -137,6 +140,8 @@ namespace MonoDevelop.Components.Docking currentOverlayPosition = Math.Max (0, Allocation.Y); QueueResize (); } + + UpdateDockbarsVisibility (); } public void RemoveOverlayWidget (bool animate = false) @@ -164,10 +169,20 @@ namespace MonoDevelop.Components.Docking QueueResize (); } } + + UpdateDockbarsVisibility (); } int currentOverlayPosition; + void UpdateDockbarsVisibility () + { + dockBarTop.UpdateVisibility (); + dockBarBottom.UpdateVisibility (); + dockBarLeft.UpdateVisibility (); + dockBarRight.UpdateVisibility (); + } + void ShowOverlayWidgetAnimation (double value) { currentOverlayPosition = Allocation.Y + (int)((double)Allocation.Height * (1f - value)); |