diff options
author | fvogel <fvogelnew1@free.fr> | 2021-07-29 06:09:30 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2021-07-29 06:09:30 (GMT) |
commit | 6bb3860e77c706c2661dacfd0f70b0f1abd621f8 (patch) | |
tree | 5549e35573791561f37a0aac73dc65a0aea8ad82 /macosx/tkMacOSXDraw.c | |
parent | 3e5c506f07e40f3d6de0800bf3b8e05980e592d6 (diff) | |
download | tk-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.c | 8 |
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; /* |