diff options
author | Lluis Sanchez <llsan@microsoft.com> | 2018-02-06 16:38:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-06 16:38:16 +0300 |
commit | 105d6f1ec4d3ba8746c1ee599de26fdea26cd8a9 (patch) | |
tree | 1e9955a43bcfa48a8246eabe9efea4c9c347e523 | |
parent | b07492f1e48be596bad92dc4b7a3bc2d128ed0f9 (diff) | |
parent | 2a2b94ab9150741c272df2c76134b86a9d2227b8 (diff) |
Merge pull request #3766 from mono/d15-5-fix560430
[15.5][560430] Don't autohide pad while its dock item is hovered
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBarItem.cs | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBarItem.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBarItem.cs index 5356ff36ae..28c94b36e5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBarItem.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockBarItem.cs @@ -390,14 +390,20 @@ namespace MonoDevelop.Components.Docking // Don't hide if the context menu for the item is being shown. if (it.ShowingContextMenu) return true; - // Don't hide the item if it has the focus. Try again later. - if (it.Widget.FocusChild != null && !force && autoShowFrame != null && ((Gtk.Window)autoShowFrame.Toplevel).HasToplevelFocus) - return true; - // Don't hide the item if the mouse pointer is still inside the window. Try again later. - int px, py; - it.Widget.GetPointer (out px, out py); - if (it.Widget.Visible && it.Widget.IsRealized && it.Widget.Allocation.Contains (px + it.Widget.Allocation.X, py + it.Widget.Allocation.Y) && !force) - return true; + if (!force) { + // Don't hide the item if it has the focus. Try again later. + if (it.Widget.FocusChild != null && autoShowFrame != null && ((Gtk.Window)autoShowFrame.Toplevel).HasToplevelFocus) + return true; + // Don't hide the item if the mouse pointer is still inside the window. Try again later. + int px, py; + it.Widget.GetPointer (out px, out py); + if (it.Widget.Visible && it.Widget.IsRealized && it.Widget.Allocation.Contains (px + it.Widget.Allocation.X, py + it.Widget.Allocation.Y)) + return true; + // Don't hide if the mouse pointer is still inside the DockBar item + GetPointer (out px, out py); + if (Allocation.Contains (px + Allocation.X, py + Allocation.Y)) + return true; + } autoHideTimeout = uint.MaxValue; AutoHide (true); return false; |