]> O.S.I.I.S - jp/crow.git/commitdiff
debug dockwin bug
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sun, 18 Mar 2018 14:33:42 +0000 (15:33 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sun, 18 Mar 2018 14:33:42 +0000 (15:33 +0100)
CrowIDE/src/Editors/ImlVisualEditor.cs
Templates/TreeView.template
src/GraphicObjects/DockStack.cs

index 13f29f662ef13258271d3f4c5b6ccdee3d49b4e2..b1759fbc93dec010d30279727ffd890623bbedc8 100644 (file)
@@ -360,12 +360,14 @@ namespace Crow.Coding
                public override void onMouseEnter (object sender, MouseMoveEventArgs e)
                {
                        base.onMouseEnter (sender, e);
+                       if (IFace.DragAndDropOperation != null && draggedObj == null)
+                               return;
                        IFace.FocusedWidget = this;
                }
                public override void onMouseLeave (object sender, MouseMoveEventArgs e)
                {
                        base.onMouseLeave (sender, e);
-                       IFace.FocusedWidget = null;
+//                     IFace.FocusedWidget = null;
                }
                public override void onMouseDown (object sender, MouseButtonEventArgs e)
                {
index 31514fce05d70cb508a20599da0efff145a5d4b0..9c18120ec65940de55a899f88f4af7aea211dcbc 100644 (file)
@@ -10,7 +10,7 @@
                Name="scrollbar1"
                LargeIncrement="{../scroller1.PageHeight}" SmallIncrement="30"
                CursorSize="{../scroller1.ChildHeightRatio}"
-               Value="{../scroller1.ScrollY}"
-               Maximum="{../scroller1.MaximumScroll}"
+               Value="{²../scroller1.ScrollY}"
+               Maximum="{../scroller1.MaxScrollY}"
                Width="14" Orientation="Vertical"/>
 </HorizontalStack>
index cdd43d80f609b33a7b5ea0d607180f38464a207b..ae8b9c89093a9fec17bba8be91606f602c2726e7 100644 (file)
@@ -57,18 +57,19 @@ namespace Crow
 
                        Group p = Parent as Group;
                        if (p != null) {
-                               lock (p.Children) {
-                                       for (int i = p.Children.Count - 1; i >= 0; i--) {
-                                               if (p.Children [i] == this)
-                                                       break;
-                                               if (p.Children [i].IsDragged)
-                                                       continue;
-                                               if (p.Children [i].Slot.ContainsOrIsEqual (m)) {                                                
-                                                       return false;
-                                               }
+                               childrenRWLock.EnterReadLock ();
+                               for (int i = p.Children.Count - 1; i >= 0; i--) {
+                                       if (p.Children [i] == this)
+                                               break;
+                                       if (p.Children [i].IsDragged)
+                                               continue;
+                                       if (p.Children [i].Slot.ContainsOrIsEqual (m)) {
+                                               childrenRWLock.ExitReadLock ();
+                                               return false;
                                        }
                                }
                        }
+                       childrenRWLock.ExitReadLock ();
                        return Slot.ContainsOrIsEqual(m);
                }
 
@@ -105,10 +106,8 @@ namespace Crow
                        if (IsDropTarget) {                             
                                DockWindow dw = IFace.DragAndDropOperation.DragSource as DockWindow;
                                if (dw.IsDocked) {
-                                       //if (!dw.CheckUndock (e.Position)) {
                                                base.onMouseMove (sender, e);
                                                return;
-                                       //}                                             
                                }
 
                                Alignment curDockPos = dw.DockingPosition;
@@ -172,6 +171,9 @@ namespace Crow
                }
                protected override void onDragLeave (object sender, DragDropEventArgs e)
                {
+                       DockWindow dw = e.DragSource as DockWindow;
+                       if (dw != null)
+                               dw.DockingPosition = Alignment.Undefined;
                        base.onDragLeave (sender, e);
                        RegisterForGraphicUpdate ();
                }