From: jpbruyere Date: Sun, 13 Mar 2016 22:42:01 +0000 (+0100) Subject: correct popper mouse leave bug X-Git-Tag: v0.4~80 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=ef7100e7fbc137eb7c05032fba0819442f7c7ab7;p=jp%2Fcrow.git correct popper mouse leave bug --- diff --git a/src/GraphicObjects/Popper.cs b/src/GraphicObjects/Popper.cs index 7c068085..746e334b 100644 --- a/src/GraphicObjects/Popper.cs +++ b/src/GraphicObjects/Popper.cs @@ -29,6 +29,7 @@ namespace Crow if (_content != null) { _content.LogicalParent = null; _content.LayoutChanged -= _content_LayoutChanged; + _content.MouseLeave -= onMouseLeave; } _content = value; @@ -38,6 +39,7 @@ namespace Crow _content.LogicalParent = this; _content.LayoutChanged += _content_LayoutChanged; + _content.MouseLeave += onMouseLeave; } } @@ -111,8 +113,14 @@ namespace Crow } public override void onMouseLeave (object sender, MouseMoveEventArgs e) { - IsPopped = false; base.onMouseLeave (sender, e); + if (MouseIsIn (e.Position)) + return; + if (_content == null) + return; + if (_content.MouseIsIn (e.Position)) + return; + IsPopped = false; } #endregion