Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Russell <cody@jhu.edu>2014-08-12 00:32:23 +0400
committerCody Russell <cody@jhu.edu>2014-08-13 01:18:48 +0400
commitf4bb573b38a18c9f5400d8734eada2d5610deae4 (patch)
tree8a728b7a875c87b34d59461c4b914102578b8327
parent1436f911d417b23c7b1503686ca3d10b09dc220d (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.cs16
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockFrame.cs23
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));