You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[GTK] Fix GC#copyArea() for overlapping source and target areas eclipse-platform#1756
The GC provides a #copyArea() method that copies an area inside the
surface of the GC to another area in the same surface. When using a
surface directly created via the Cairo API (or with the GDK API on
Wayland), this operation is broken.
When the source and target area are overlapping and the source is
above-left of the target area, the source area will appear replicated in
the target area, as Cairo does not perform any buffering but does a
linewise/chunkwise write from the source area to the target area.
This change fixes the behavior of GC#copyArea() by explicitly buffering
the area to be copied. It also removes the existing workaround in images
that avoids the instantiation of a surface via the Cairo API, as the
reason for that workaround was the issue fixed by this change.
Fixeseclipse-platform#1756
0 commit comments