From cf6f94ec9822d252e6dff6dc8a822374f2914a6b Mon Sep 17 00:00:00 2001 From: paul Date: Wed, 15 Apr 2009 07:25:50 +0000 Subject: [PATCH] lcl: forgotten change git-svn-id: trunk@19437 - --- lcl/controls.pp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/lcl/controls.pp b/lcl/controls.pp index 224fed6208..3c2572b511 100644 --- a/lcl/controls.pp +++ b/lcl/controls.pp @@ -493,8 +493,9 @@ type procedure LoadFromStream(Stream: TStream); virtual; abstract; procedure PaintSite(DC: HDC); virtual; abstract; procedure MouseMessage(var Message: TLMessage); virtual; abstract; + procedure PositionDockRect(ADockObject: TDragDockObject); virtual; overload; procedure PositionDockRect(Client, DropCtl: TControl; DropAlign: TAlign; - var DockRect: TRect); virtual; abstract; + var DockRect: TRect); virtual; abstract; overload; procedure RemoveControl(Control: TControl); virtual; abstract; procedure ResetBounds(Force: Boolean); virtual; abstract; procedure SaveToStream(Stream: TStream); virtual; abstract; @@ -3504,6 +3505,25 @@ end; { TDockManager } +procedure TDockManager.PositionDockRect(ADockObject: TDragDockObject); +begin +(* for now: defer to old PositionDockRect. + Overridden methods should determine DropOnControl and DropAlign, before + calling inherited method. +*) + with ADockObject do + begin + if DropAlign = alNone then + begin + if DropOnControl <> nil then + DropAlign := DropOnControl.GetDockEdge(DropOnControl.ScreenToClient(DragPos)) + else + DropAlign := Control.GetDockEdge(DragTargetPos); + end; + PositionDockRect(Control, DropOnControl, DropAlign, FDockRect); + end; +end; + function TDockManager.AutoFreeByControl: Boolean; begin Result := True;