|
@@ -1148,23 +1148,26 @@ function TFresnelViewport.GetElementAt(const x, y: TFresnelLength
|
|
var
|
|
var
|
|
El: TFresnelElement;
|
|
El: TFresnelElement;
|
|
i: Integer;
|
|
i: Integer;
|
|
- aLeft, aTop: TFresnelLength;
|
|
|
|
|
|
+ aLeft, aTop, aPaddingLeft, aPaddingTop: TFresnelLength;
|
|
BorderBox: TFresnelRect;
|
|
BorderBox: TFresnelRect;
|
|
begin
|
|
begin
|
|
Result:=nil;
|
|
Result:=nil;
|
|
if Node=nil then exit;
|
|
if Node=nil then exit;
|
|
El:=Node.Element;
|
|
El:=Node.Element;
|
|
if not El.Rendered then exit;
|
|
if not El.Rendered then exit;
|
|
|
|
+ BorderBox:=El.RenderedBorderBox;
|
|
if Node.NodeCount>0 then begin
|
|
if Node.NodeCount>0 then begin
|
|
- aLeft:=El.GetRenderedCSSLength(fcaLeft,false);
|
|
|
|
- aTop:=El.GetRenderedCSSLength(fcaTop,false);
|
|
|
|
|
|
+ aPaddingLeft:=El.GetRenderedCSSLength(fcaPaddingLeft,false);
|
|
|
|
+ aPaddingTop:=El.GetRenderedCSSLength(fcaPaddingTop,false);
|
|
|
|
+ aLeft:=BorderBox.Left+aPaddingLeft;
|
|
|
|
+ aTop:=BorderBox.Top+aPaddingTop;
|
|
|
|
+
|
|
for i:=Node.NodeCount-1 downto 0 do
|
|
for i:=Node.NodeCount-1 downto 0 do
|
|
begin
|
|
begin
|
|
Result:=Check(Node.Nodes[i],dx+aLeft,dy+aTop);
|
|
Result:=Check(Node.Nodes[i],dx+aLeft,dy+aTop);
|
|
if Result<>nil then exit;
|
|
if Result<>nil then exit;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
- BorderBox:=El.RenderedBorderBox;
|
|
|
|
if (x>=BorderBox.Left+dx) and (y>=BorderBox.Top+dy)
|
|
if (x>=BorderBox.Left+dx) and (y>=BorderBox.Top+dy)
|
|
and (x<=BorderBox.Right+dx) and (y<=BorderBox.Right+dy) then
|
|
and (x<=BorderBox.Right+dx) and (y<=BorderBox.Right+dy) then
|
|
Result:=El
|
|
Result:=El
|