Only trigger NSClipView changes when setting new frame (#313)

This commit is contained in:
williameveretteggplant 2024-11-19 11:32:55 -07:00 committed by GitHub
parent 4da0ca66a0
commit 7855252df0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -565,9 +565,24 @@ static inline NSRect integralRect (NSRect rect, NSView *view)
- (void) setFrame: (NSRect)rect
{
BOOL changedOrigin = NO;
BOOL changedSize = NO;
if (NSEqualPoints(_frame.origin, rect.origin) == NO)
{
changedOrigin = YES;
}
if (NSEqualSizes(_frame.size, rect.size) == NO)
{
changedSize = YES;
}
[super setFrame: rect];
[self setBoundsOrigin: [self constrainScrollPoint: _bounds.origin]];
[_super_view reflectScrolledClipView: self];
if (changedOrigin || changedSize)
{
NSPoint proposedPoint = [self constrainScrollPoint: _bounds.origin];
[self setBoundsOrigin: proposedPoint];
[_super_view reflectScrolledClipView: self];
}
}
- (void) translateOriginToPoint: (NSPoint)aPoint