You've already forked lazarus-ccr
fpspreadsheet: Fix clip rect error when painting TsWorksheet fixed cells.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4461 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -2077,7 +2077,7 @@ begin
|
|||||||
|
|
||||||
fixed_rct := Rect(0, 0, 0, 0);
|
fixed_rct := Rect(0, 0, 0, 0);
|
||||||
if HeaderCount > 0 then
|
if HeaderCount > 0 then
|
||||||
ColRowToOffset(true, false, 0, fixed_rct.Left, fixed_rct.Right);
|
ColRowToOffset(true, true, 0, fixed_rct.Left, fixed_rct.Right);
|
||||||
|
|
||||||
// is this row within the ClipRect?
|
// is this row within the ClipRect?
|
||||||
clipArea := Canvas.ClipRect;
|
clipArea := Canvas.ClipRect;
|
||||||
@@ -2238,24 +2238,18 @@ begin
|
|||||||
rct.Top := temp_rct.Top;
|
rct.Top := temp_rct.Top;
|
||||||
rct.Bottom := temp_rct.Bottom;
|
rct.Bottom := temp_rct.Bottom;
|
||||||
|
|
||||||
{
|
|
||||||
if IsRightToLeft then
|
|
||||||
begin
|
|
||||||
ColRowToOffset(true, true, gc, tmp, rct.Right);
|
|
||||||
ColRowToOffset(true, true, gcNext-1, rct.Left, tmp);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
ColRowToOffset(true, true, gc, rct.Left, tmp);
|
|
||||||
ColRowToOffset(true, true, gcNext-1, tmp, rct.Right);
|
|
||||||
end;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rct.Left < rct.Right) and HorizontalIntersect(rct, clipArea) then
|
if (rct.Left < rct.Right) and HorizontalIntersect(rct, clipArea) then
|
||||||
begin
|
begin
|
||||||
gds := GetGridDrawState(gc, gr);
|
gds := GetGridDrawState(gc, gr);
|
||||||
temp_rct := rct;
|
temp_rct := rct;
|
||||||
// Avoid painting into the fixed cells
|
// Avoid painting into the fixed cells
|
||||||
if temp_rct.Left < fixed_rct.Right then temp_rct.Left := fixed_rct.Right;
|
if IsRightToLeft then
|
||||||
|
begin
|
||||||
|
if temp_rct.Right > fixed_rct.Left then temp_rct.Right := fixed_rct.Left
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if temp_rct.Left < fixed_rct.Right then temp_rct.Left := fixed_rct.Right;
|
||||||
|
end;
|
||||||
// Draw cell
|
// Draw cell
|
||||||
DoDrawCell(gc, gr, temp_rct, rct);
|
DoDrawCell(gc, gr, temp_rct, rct);
|
||||||
// Draw comment marker
|
// Draw comment marker
|
||||||
|
Reference in New Issue
Block a user