diff --git a/Source/NSClipView.m b/Source/NSClipView.m index f63d96df2..f047f84d1 100644 --- a/Source/NSClipView.m +++ b/Source/NSClipView.m @@ -290,7 +290,22 @@ - (void) viewFrameChanged: (NSNotification*)aNotification { + NSRect documentFrame = [_documentView frame]; + [self setBoundsOrigin: [self constrainScrollPoint: _bounds.origin]]; + + /* If _bounds completely encloses (touching allowed) documentFrame */ + if ((_bounds.origin.x <= documentFrame.origin.x) + && (_bounds.origin.y <= documentFrame.origin.y) + && (_bounds.origin.x + _bounds.size.width + >= documentFrame.origin.x + documentFrame.size.width) + && (_bounds.origin.y + _bounds.size.height + >= documentFrame.origin.y + documentFrame.size.height)) + { + /* then fill the area not covered by documentView with background color */ + [self setNeedsDisplay: YES]; + } + [_super_view reflectScrolledClipView: self]; }