Carbon intf: fixed invalid CGRect conversion with help from Tobias Giesen

git-svn-id: trunk@11968 -
This commit is contained in:
tombo 2007-09-08 16:28:05 +00:00
parent 5a58ffb486
commit 5efbc8540f
2 changed files with 30 additions and 9 deletions

View File

@ -1,4 +1,4 @@
The following people contributed to Lazarus:
The following people contributed to Lazarus:
A. J. Venter
Aleksey Lagunov
@ -93,6 +93,7 @@ Sergio Marcelo
Shane Miller
Stefan Hille
Taras Boychuk
Tobias Giesen
Tomas Gregorovic
Tom Lisjac
Tony Maro

View File

@ -712,10 +712,20 @@ end;
------------------------------------------------------------------------------}
function CGRectToRect(const ARect: CGRect): TRect;
begin
Result.Left := Floor(ARect.origin.x);
Result.Top := Floor(ARect.origin.y);
Result.Right := Ceil(ARect.origin.x + ARect.size.width);
Result.Bottom := Ceil(ARect.origin.y + ARect.size.height);
if CGRectIsNull(ARect) <> 0 then
begin // CGRect passed is invalid!
Result.Left := 0;
Result.Top := 0;
Result.Right := 0;
Result.Bottom := 0;
end
else
begin
Result.Left := Floor(ARect.origin.x);
Result.Top := Floor(ARect.origin.y);
Result.Right := Ceil(ARect.origin.x + ARect.size.width);
Result.Bottom := Ceil(ARect.origin.y + ARect.size.height);
end;
end;
{------------------------------------------------------------------------------
@ -751,10 +761,20 @@ end;
------------------------------------------------------------------------------}
function HIRectToCarbonRect(const ARect: HIRect): FPCMacOSAll.Rect;
begin
Result.Left := Floor(ARect.origin.x);
Result.Top := Floor(ARect.origin.y);
Result.Right := Ceil(ARect.origin.x + ARect.size.width);
Result.Bottom := Ceil(ARect.origin.y + ARect.size.height);
if CGRectIsNull(ARect) <> 0 then
begin // CGRect passed is invalid!
Result.Left := 0;
Result.Top := 0;
Result.Right := 0;
Result.Bottom := 0;
end
else
begin
Result.Left := Floor(ARect.origin.x);
Result.Top := Floor(ARect.origin.y);
Result.Right := Ceil(ARect.origin.x + ARect.size.width);
Result.Bottom := Ceil(ARect.origin.y + ARect.size.height);
end;
end;
{------------------------------------------------------------------------------