View Issue Details

IDProjectCategoryView StatusLast Update
0011959LazarusLCLpublic2020-04-02 14:05
ReporterSergey Bulba Assigned ToZeljan Rikalo  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version0.9.25 (SVN) 
Summary0011959: Canvas.CopyRect differently uses Canvas.CopyMode in Win32 and GTK (totally)
DescriptionModes like Canvas.CopyMode:=cmSrcAnd or Canvas.CopyMode:=cmSrcErase totally incorrectly implemented in GTK2 (comparing with Win32 widjetset and even with Delphi and WinAPI).
Additional Information1. Destination clWhite and source clWhite in cmSrcAnd mode result clWhite in Win32, and clBlack in GTK2.

2. Destination clWhite and source clWhite in cmSrcErase mode result clBlack in Win32, and clWhite in GTK2.

Try project from CopyRectError.7z (compile with Win32 and with GTK2 widjetset) or use next lines:
Buffer.Canvas.CopyMode:=cmSrcAnd;
Buffer.Canvas.CopyRect(Rect(0,0,24,24),Buffer2.Canvas,Rect(0,0,24,24));
TagsNo tags attached.
Fixed in Revision
LazTarget-
WidgetsetGTK 2
Attached Files

Activities

2008-08-24 07:11

 

CopyRectError.7z (1,432 bytes)

Zeljan Rikalo

2020-04-02 14:05

developer   ~0121844

This issue is fixed - tested current trunk r62859 on linux gtk2 , qt, qt5, also win32 under wine. All WS give same result.

Issue History

Date Modified Username Field Change
2008-08-24 07:11 Sergey Bulba New Issue
2008-08-24 07:11 Sergey Bulba File Added: CopyRectError.7z
2008-08-24 07:11 Sergey Bulba Widgetset => GTK 2
2008-08-24 22:12 Vincent Snijders LazTarget => 1.2
2008-08-24 22:12 Vincent Snijders Status new => acknowledged
2014-01-14 15:16 Martin Friebe LazTarget 1.2 => 1.4
2014-09-10 00:52 Juha Manninen LazTarget 1.4 => -
2020-04-02 14:05 Zeljan Rikalo Assigned To => Zeljan Rikalo
2020-04-02 14:05 Zeljan Rikalo Status acknowledged => resolved
2020-04-02 14:05 Zeljan Rikalo Resolution open => fixed
2020-04-02 14:05 Zeljan Rikalo Widgetset GTK 2 => GTK 2
2020-04-02 14:05 Zeljan Rikalo Note Added: 0121844