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-12 00:32:23 +0400
commit3949c3efcfa6802301196e3580598ff63a443db8 (patch)
tree8b55e2a716ab05232ee4172c6c0cd39c01f463bc /main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking
parent917ff3513a33d59f0c3681367e60950661bbbfcb (diff)
Hide the dockbars while we're displaying an overlay, because otherwise
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
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking')
-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));