File: dragstartstop.patch

package info (click to toggle)
lazarus 2.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 214,460 kB
  • sloc: pascal: 1,862,622; xml: 265,709; cpp: 56,595; sh: 3,008; java: 609; makefile: 535; perl: 297; sql: 222; ansic: 137
file content (32 lines) | stat: -rw-r--r-- 1,101 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
diff --git a/lcl/include/dragmanager.inc b/lcl/include/dragmanager.inc
index e94e580..0624547 100644
--- a/lcl/include/dragmanager.inc
+++ b/lcl/include/dragmanager.inc
@@ -644,6 +644,9 @@ begin
     FWaitForTreshold := not AImmediate;
     GetCursorPos(FStartPosition);
 
+    if (AControl.DragKind<>dkDock) and (AControl.HostDockSite <> nil) then
+      AControl.DragKind := dkDock; //make docked control dockable
+
     case AControl.DragKind of
       dkDrag: FPerformer := TDragPerformer.Create(Self, AControl);
       dkDock: FPerformer := TDockPerformer.Create(Self, AControl);
@@ -780,6 +783,7 @@ var
   AIsDragging,
   AIsDocking: Boolean;
 begin
+{$IFDEF old}
   // if this is TWinControl, and it have controls (not TWinControls)
   // then we should check Dragging in those controls
   AIsDocking := False;
@@ -803,6 +807,9 @@ begin
   // belongs to parent => we should allow parent to get capture
   if not (AIsDocking and (CaptureControl = OldCaptureControl.Parent)) then
     DragStop(AIsDragging);
+{$ELSE}
+//ignore changes, they prevent proper drag start and stop
+{$ENDIF}
 end;