From 68266991631731a73a705730f538a2aa6a55bfd0 Mon Sep 17 00:00:00 2001 From: paul Date: Sat, 2 Feb 2008 09:45:19 +0000 Subject: [PATCH] drag/drop: - restore CancelDrag - restore DragManager.EndDrag git-svn-id: trunk@13952 - --- lcl/controls.pp | 8 ++++++++ lcl/include/dragmanager.inc | 2 +- lcl/include/dragobject.inc | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lcl/controls.pp b/lcl/controls.pp index 29ae9ff23c..a5d95394f9 100644 --- a/lcl/controls.pp +++ b/lcl/controls.pp @@ -339,6 +339,7 @@ type FDragTarget: TControl; FDragTargetPos: TPoint; protected + procedure EndDrag(Target: TObject; X, Y: Integer); virtual; function GetDragImages: TDragImageList; virtual; function GetDragCursor(Accepted: Boolean; X, Y: Integer): TCursor; virtual; public @@ -2163,6 +2164,7 @@ procedure RecreateWnd(const AWinControl:TWinControl); var DefaultDockTreeClass: TDockTreeClass; +procedure CancelDrag; procedure SetCaptureControl(AWinControl: TWinControl; const Position: TPoint); procedure SetCaptureControl(Control: TControl); function GetCaptureControl: TControl; @@ -2506,6 +2508,12 @@ begin then Result := CaptureControl; end; +procedure CancelDrag; +begin + if (DragManager <> nil) and DragManager.IsDragging then + DragManager.DragStop(False); +end; + procedure SetCaptureControl(AWinControl: TWinControl; const Position: TPoint); var Control: TControl; diff --git a/lcl/include/dragmanager.inc b/lcl/include/dragmanager.inc index 8dbe03edf6..5b4ef28c80 100644 --- a/lcl/include/dragmanager.inc +++ b/lcl/include/dragmanager.inc @@ -253,7 +253,7 @@ begin if not Accepted then ADragObjectCopy.Control.DragCanceled; - ADragObjectCopy.Control.DoEndDrag(ADragObjectCopy.DragTarget, TargetPos.X, TargetPos.Y); + ADragObjectCopy.EndDrag(ADragObjectCopy.DragTarget, TargetPos.X, TargetPos.Y); finally //erase global variables (dragging stopped) diff --git a/lcl/include/dragobject.inc b/lcl/include/dragobject.inc index c6f6b8664d..aab6e391ec 100644 --- a/lcl/include/dragobject.inc +++ b/lcl/include/dragobject.inc @@ -25,6 +25,12 @@ begin FControl := AControl; end; +procedure TDragObject.EndDrag(Target: TObject; X, Y: Integer); +begin + if FControl <> nil then + FControl.DoEndDrag(Target, X, Y); +end; + function TDragObject.GetDragImages: TDragImageList; begin Result := nil;