summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXDraw.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2021-07-29 06:09:30 (GMT)
committerfvogel <fvogelnew1@free.fr>2021-07-29 06:09:30 (GMT)
commit6bb3860e77c706c2661dacfd0f70b0f1abd621f8 (patch)
tree5549e35573791561f37a0aac73dc65a0aea8ad82 /macosx/tkMacOSXDraw.c
parent3e5c506f07e40f3d6de0800bf3b8e05980e592d6 (diff)
downloadtk-6bb3860e77c706c2661dacfd0f70b0f1abd621f8.zip
tk-6bb3860e77c706c2661dacfd0f70b0f1abd621f8.tar.gz
tk-6bb3860e77c706c2661dacfd0f70b0f1abd621f8.tar.bz2
Experiment. Change macOS damage region computation: use xor(source,destination).
Diffstat (limited to 'macosx/tkMacOSXDraw.c')
-rw-r--r--macosx/tkMacOSXDraw.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/macosx/tkMacOSXDraw.c b/macosx/tkMacOSXDraw.c
index bbb9b23..402d154 100644
--- a/macosx/tkMacOSXDraw.c
+++ b/macosx/tkMacOSXDraw.c
@@ -1143,7 +1143,7 @@ TkScrollWindow(
MacDrawable *macDraw = (MacDrawable *)drawable;
TKContentView *view = (TKContentView *)TkMacOSXGetNSViewForDrawable(macDraw);
CGRect srcRect, dstRect;
- HIShapeRef dmgRgn = NULL, extraRgn = NULL;
+ HIShapeRef dmgRgn = NULL, extraRgn = NULL, unionRgn = NULL, intersectRgn = NULL;
NSRect bounds, visRect, scrollSrc, scrollDst;
int result = 0;
@@ -1182,7 +1182,11 @@ TkScrollWindow(
dmgRgn = HIShapeCreateMutableWithRect(&srcRect);
extraRgn = HIShapeCreateWithRect(&dstRect);
ChkErr(HIShapeUnion, dmgRgn, extraRgn,
- (HIMutableShapeRef) dmgRgn);
+ (HIMutableShapeRef) unionRgn);
+ ChkErr(HIShapeIntersect, dmgRgn, extraRgn,
+ (HIMutableShapeRef) intersectRgn);
+ ChkErr(HIShapeDifference, unionRgn, intersectRgn,
+ (HIMutableShapeRef) dmgRgn);
result = HIShapeIsEmpty(dmgRgn) ? 0 : 1;
/*