aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/GraphicObject.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-03-04 19:59:29 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-03-04 19:59:29 +0100
commita31ef5c25faab8bb10fd458eac1a9be86a1a1aee (patch)
treeaac550d8dde64ce63809aef353a86a0fd9e60ea4 /src/GraphicObjects/GraphicObject.cs
parent4492fa1bccc93616831ddeec76e8c26116d183e4 (diff)
center docking
Diffstat (limited to 'src/GraphicObjects/GraphicObject.cs')
-rw-r--r--src/GraphicObjects/GraphicObject.cs18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/GraphicObjects/GraphicObject.cs b/src/GraphicObjects/GraphicObject.cs
index 8ba8788d..f6778e34 100644
--- a/src/GraphicObjects/GraphicObject.cs
+++ b/src/GraphicObjects/GraphicObject.cs
@@ -1806,9 +1806,17 @@ namespace Crow
Debug.WriteLine("MouseHover => " + this.ToString());
#endif
if (IFace.DragAndDropOperation != null) {
- if (this.AllowDrop) {
- if (IFace.DragAndDropOperation.DragSource != this && IFace.DragAndDropOperation.DropTarget != this)
- onDragEnter (this, IFace.DragAndDropOperation);
+ GraphicObject g = this;
+ while (g != null) {
+ if (g.AllowDrop) {
+ if (IFace.DragAndDropOperation.DragSource != this && IFace.DragAndDropOperation.DropTarget != this) {
+ if (IFace.DragAndDropOperation.DropTarget != null)
+ IFace.DragAndDropOperation.DropTarget.onDragLeave (this, IFace.DragAndDropOperation);
+ g.onDragEnter (this, IFace.DragAndDropOperation);
+ }
+ break;
+ }
+ g = g.focusParent;
}
}
Hover.Raise (this, e);
@@ -1818,10 +1826,6 @@ namespace Crow
#if DEBUG_FOCUS
Debug.WriteLine("MouseUnHover => " + this.ToString());
#endif
- if (IFace.DragAndDropOperation != null) {
- if (IFace.DragAndDropOperation.DropTarget == this)
- onDragLeave (this, IFace.DragAndDropOperation);
- }
UnHover.Raise (this, e);
}
#endregion