anchordocking: fixed nested GetSiteInfo

git-svn-id: trunk@26340 -
This commit is contained in:
mattias 2010-06-30 06:26:56 +00:00
parent ac56a26e10
commit afab0bd0c4
2 changed files with 5 additions and 4 deletions

View File

@ -4036,7 +4036,7 @@ begin
CanDock:=(Client is TAnchorDockHostSite)
and not DockMaster.AutoFreedIfControlIsRemoved(Self,Client);
debugln(['TAnchorDockHostSite.GetSiteInfo ',DbgSName(Self),' ',dbgs(BoundsRect),' ',Caption,' CanDock=',CanDock,' PtIn=',PtInRect(InfluenceRect,MousePos)]);
//debugln(['TAnchorDockHostSite.GetSiteInfo ',DbgSName(Self),' ',dbgs(BoundsRect),' ',Caption,' CanDock=',CanDock,' PtIn=',PtInRect(InfluenceRect,MousePos)]);
if Assigned(OnGetSiteInfo) then
OnGetSiteInfo(Self, Client, InfluenceRect, MousePos, CanDock);

View File

@ -383,6 +383,7 @@ procedure TDockPerformer.DragMove(APosition: TPoint);
begin
CanDock := True;
AControl.GetSiteInfo(FDockObject.Control, ARect, APosition, CanDock);
//debugln(['FindDockSiteAtPosition ',DbgSName(AControl),' CanDock=',CanDock,' PtIn=',PtInRect(ARect, APosition)]);
if CanDock and PtInRect(ARect, APosition) then
QualifyingSites.Add(AControl);
end;
@ -392,11 +393,11 @@ procedure TDockPerformer.DragMove(APosition: TPoint);
begin
// if a parent and a child has qualified remove the parent
for i:=QualifyingSites.Count-1 downto 0 do begin
debugln(['FindDockSiteAtPosition qualified: ',DbgSName(TWinControl(QualifyingSites[i]))]);
for j:=i+1 to QualifyingSites.Count-1 do begin
//debugln(['FindDockSiteAtPosition qualified: ',DbgSName(TWinControl(QualifyingSites[i])),' ',TWinControl(QualifyingSites[i]).Caption]);
for j:=0 to QualifyingSites.Count-1 do begin
if TWinControl(QualifyingSites[i]).IsParentOf(TWinControl(QualifyingSites[j]))
then begin
debugln(['FindDockSiteAtPosition isparentof ',DbgSName(TWinControl(QualifyingSites[j]))]);
//debugln(['FindDockSiteAtPosition isparentof ',DbgSName(TWinControl(QualifyingSites[j])),' ',TWinControl(QualifyingSites[j]).Caption]);
QualifyingSites.Delete(i);
break;
end;