mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-02 15:12:55 +02:00
Gtk3: we must save and restore BkMode when brush fill with opaque color is enabled.
This commit is contained in:
parent
0cb1196d34
commit
b8df3cbaa3
@ -2026,6 +2026,7 @@ end;
|
|||||||
procedure TGtk3DeviceContext.drawEllipse(x, y, w, h: Integer; AFill, ABorder: Boolean);
|
procedure TGtk3DeviceContext.drawEllipse(x, y, w, h: Integer; AFill, ABorder: Boolean);
|
||||||
var
|
var
|
||||||
save_matrix: Tcairo_matrix_t;
|
save_matrix: Tcairo_matrix_t;
|
||||||
|
SaveMode:Integer;
|
||||||
begin
|
begin
|
||||||
cairo_save(pcr);
|
cairo_save(pcr);
|
||||||
try
|
try
|
||||||
@ -2045,9 +2046,13 @@ begin
|
|||||||
cairo_close_path(pcr);
|
cairo_close_path(pcr);
|
||||||
if AFill then
|
if AFill then
|
||||||
begin
|
begin
|
||||||
|
SaveMode := FBkMode;
|
||||||
|
FBkMode := OPAQUE;
|
||||||
ApplyBrush;
|
ApplyBrush;
|
||||||
cairo_fill_preserve(pcr);
|
cairo_fill_preserve(pcr);
|
||||||
|
FBkMode := SaveMode;
|
||||||
end;
|
end;
|
||||||
|
cairo_set_matrix(pcr, @save_matrix);
|
||||||
finally
|
finally
|
||||||
cairo_restore(pcr);
|
cairo_restore(pcr);
|
||||||
end;
|
end;
|
||||||
@ -2289,6 +2294,7 @@ end;
|
|||||||
procedure TGtk3DeviceContext.fillRect(x, y, w, h: Integer; ABrush: HBRUSH);
|
procedure TGtk3DeviceContext.fillRect(x, y, w, h: Integer; ABrush: HBRUSH);
|
||||||
var
|
var
|
||||||
ATempBrush: TGtk3Brush;
|
ATempBrush: TGtk3Brush;
|
||||||
|
SaveMode:Integer;
|
||||||
begin
|
begin
|
||||||
{$ifdef VerboseGtk3DeviceContext}
|
{$ifdef VerboseGtk3DeviceContext}
|
||||||
//DebugLn('TGtk3DeviceContext.fillRect ',Format('x %d y %d w %d h %d',[x, y, w, h]));
|
//DebugLn('TGtk3DeviceContext.fillRect ',Format('x %d y %d w %d h %d',[x, y, w, h]));
|
||||||
@ -2300,7 +2306,8 @@ begin
|
|||||||
if ABrush <> 0 then
|
if ABrush <> 0 then
|
||||||
begin
|
begin
|
||||||
ATempBrush := FCurrentBrush;
|
ATempBrush := FCurrentBrush;
|
||||||
fBkMode := OPAQUE;
|
SaveMode := FBkMode;
|
||||||
|
FBkMode := OPAQUE;
|
||||||
CurrentBrush:= TGtk3Brush(ABrush);
|
CurrentBrush:= TGtk3Brush(ABrush);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2314,7 +2321,10 @@ begin
|
|||||||
cairo_stroke(pcr);
|
cairo_stroke(pcr);
|
||||||
|
|
||||||
if ABrush <> 0 then
|
if ABrush <> 0 then
|
||||||
|
begin
|
||||||
CurrentBrush:= ATempBrush;
|
CurrentBrush:= ATempBrush;
|
||||||
|
FBkMode := SaveMode;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
cairo_restore(pcr);
|
cairo_restore(pcr);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user