diff options
| author | jp <jp_bruyere@hotmail.com> | 2016-04-04 07:17:20 +0200 |
|---|---|---|
| committer | jp <jp_bruyere@hotmail.com> | 2016-04-04 07:18:50 +0200 |
| commit | 075f279755493aece9b97566373377e8858985bc (patch) | |
| tree | 9d6c7d63fa0e22c52ab816058e64adcd4cc10e2d /src/GraphicObjects | |
| parent | 22644afe6f0722dcfb5fd27ba353f12274f55eb6 (diff) | |
some border detection improvments
Diffstat (limited to 'src/GraphicObjects')
| -rw-r--r-- | src/GraphicObjects/Window.cs | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/src/GraphicObjects/Window.cs b/src/GraphicObjects/Window.cs index 429d4269..2bfa6921 100644 --- a/src/GraphicObjects/Window.cs +++ b/src/GraphicObjects/Window.cs @@ -34,15 +34,6 @@ namespace Crow } #endregion - #region GraphicObject overrides - [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true - public override bool Focusable - { - get { return base.Focusable; } - set { base.Focusable = value; } - } - #endregion - public override GraphicObject Content { get { return _contentContainer == null ? null : _contentContainer.Child; @@ -78,6 +69,7 @@ namespace Crow } } + bool hoverBorder = false; public override void onMouseMove (object sender, MouseMoveEventArgs e) { @@ -85,11 +77,13 @@ namespace Crow Interface otkgw = Interface.CurrentInterface; - if (e.Mouse.IsButtonDown (MouseButton.Left)) { - if (!HasFocus) - return; - - //otkgw.redrawClip.AddRectangle (this.ScreenCoordinates(this.Slot)); + if (!hoverBorder) { + currentDirection = Direction.None; + Interface.CurrentInterface.MouseCursor = XCursor.Default; + return; + } + + if (e.Mouse.IsButtonDown (MouseButton.Left)) { int currentLeft = this.Left; int currentTop = this.Top; @@ -141,14 +135,14 @@ namespace Crow } return; } - GraphicObject firstFocusableAncestor = otkgw.hoverWidget; - while (firstFocusableAncestor != this) { - if (firstFocusableAncestor == null) - return; - if (firstFocusableAncestor.Focusable) - return; - firstFocusableAncestor = firstFocusableAncestor.Parent as GraphicObject; - } +// GraphicObject firstFocusableAncestor = otkgw.hoverWidget; +// while (firstFocusableAncestor != this) { +// if (firstFocusableAncestor == null) +// return; +// if (firstFocusableAncestor.Focusable) +// return; +// firstFocusableAncestor = firstFocusableAncestor.Parent as GraphicObject; +// } if (Resizable) { Direction lastDir = currentDirection; @@ -206,13 +200,21 @@ namespace Crow } } } - public override void onMouseLeave (object sender, MouseMoveEventArgs e) + public void onBorderMouseLeave (object sender, MouseMoveEventArgs e) { - base.onMouseLeave (sender, e); + hoverBorder = false; currentDirection = Direction.None; Interface.CurrentInterface.MouseCursor = XCursor.Default; } + public void onBorderMouseEnter (object sender, MouseMoveEventArgs e) + { + hoverBorder = true; + } + public override void onMouseDown (object sender, MouseButtonEventArgs e) + { + base.onMouseDown (sender, e); + } protected override void loadTemplate(GraphicObject template = null) { base.loadTemplate (template); @@ -221,10 +223,8 @@ namespace Crow protected void butQuitPress (object sender, MouseButtonEventArgs e) { - ILayoutable parent = (sender as GraphicObject).Parent; - while(!(parent is Window)) - parent = parent.Parent; - Interface.CurrentInterface.DeleteWidget (parent as GraphicObject); + Interface.CurrentInterface.MouseCursor = XCursor.Default; + Interface.CurrentInterface.DeleteWidget (this); } public override void ResolveBindings () |