diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-03-07 15:06:30 +0100 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-03-07 15:06:30 +0100 |
| commit | 6f303fb67fcc7843ed564c676d12e86b034cfe0a (patch) | |
| tree | 01832b4b99c0dbcdbdb1743f073dd93e6f975149 /src/GraphicObjects/DockWindow.cs | |
| parent | 5f98acc7dac6255fceb81da2b8f7e37ffcbec1e8 (diff) | |
Height and Width of GO major change for stacking, docker improvement and simplification
Diffstat (limited to 'src/GraphicObjects/DockWindow.cs')
| -rw-r--r-- | src/GraphicObjects/DockWindow.cs | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/GraphicObjects/DockWindow.cs b/src/GraphicObjects/DockWindow.cs index f333f6c4..34290a2e 100644 --- a/src/GraphicObjects/DockWindow.cs +++ b/src/GraphicObjects/DockWindow.cs @@ -39,7 +39,6 @@ namespace Crow bool isDocked = false; Alignment docking = Alignment.Undefined; - Point lastMousePos; //last known mouse pos in this control Point undockingMousePosOrig; //mouse pos when docking was donne, use for undocking on mouse move Rectangle savedSlot; //last undocked slot recalled when view is undocked bool wasResizable; @@ -89,13 +88,14 @@ namespace Crow public override void onMouseMove (object sender, MouseMoveEventArgs e) { - lastMousePos = e.Position; +// if (this.HasFocus && e.Mouse.IsButtonDown (MouseButton.Left) && IsDocked) { +// if (Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10 || +// Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10) +// Undock (); +// } - if (this.HasFocus && e.Mouse.IsButtonDown (MouseButton.Left) && IsDocked) { - if (Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10 || - Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10) - Undock (); - } + if (this.HasFocus && e.Mouse.IsButtonDown (MouseButton.Left) && IsDocked) + CheckUndock (e.Position); base.onMouseMove (sender, e); } @@ -107,6 +107,8 @@ namespace Crow undockingMousePosOrig = e.Position; } public bool CheckUndock (Point mousePos) { + if (DockingPosition == Alignment.Center) + return false; if (Math.Abs (mousePos.X - undockingMousePosOrig.X) < undockThreshold || Math.Abs (mousePos.X - undockingMousePosOrig.X) < undockThreshold) return false; @@ -143,10 +145,8 @@ namespace Crow Resizable = wasResizable; } } + void dock (DockStack target){ - if (RootDock.CenterDockedObj is DockWindow && DockingPosition == Alignment.Center) - return; - lock (IFace.UpdateMutex) { IsDocked = true; //undockingMousePosOrig = lastMousePos; @@ -156,17 +156,23 @@ namespace Crow LastSlots = LastPaintedSlot = Slot = default(Rectangle); Left = Top = 0; - RootDock.RemoveChild (this); + Group g = Parent as Group; + g.RemoveChild (this); target.Dock (this); } } + protected override void close () { if (isDocked) Undock (); base.close (); } + + public string ExportWinConfigs () { + return string.Format ("{0};{1};{2}", this.Name, DockingPosition, savedSlot); + } } } |