mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-12 17:22:04 +00:00
Bug 536524. Avoid overlong paths by normalizing. r=bsmedberg
This commit is contained in:
parent
cd2f7f16fc
commit
40c40a3d2c
@ -1295,7 +1295,7 @@ AddItemsToRegion(nsDisplayListBuilder* aBuilder, nsDisplayList* aList,
|
||||
nsRegion clippedOutDestination;
|
||||
clippedOutDestination.Sub(aUpdateRect, clip);
|
||||
#ifdef DEBUG
|
||||
PrintAddedRegion("Adding region for clipped out source frame %p",
|
||||
PrintAddedRegion("Adding region for clipped out destination frame %p",
|
||||
clipFrame, clippedOutDestination);
|
||||
#endif
|
||||
aRegion->Or(*aRegion, clippedOutDestination);
|
||||
|
@ -1755,6 +1755,24 @@ void nsChildView::Scroll(const nsIntPoint& aDelta,
|
||||
}
|
||||
}
|
||||
#endif // NS_LEOPARD_AND_LATER
|
||||
// Invalidate the area that was scrolled into view from outside the window
|
||||
// First, compute the destination region whose source was outside the
|
||||
// window. We do this by subtracting from destRegion the window bounds,
|
||||
// translated by the scroll amount.
|
||||
NSView* rootView = [[mView window] contentView];
|
||||
NSRect rootViewRect = [rootView frame];
|
||||
rootViewRect.origin = NSMakePoint(0, 0);
|
||||
rootViewRect = [mView convertRect:rootViewRect fromView: rootView];
|
||||
nsIntRect windowBounds;
|
||||
NSRectToGeckoRect(rootViewRect, windowBounds);
|
||||
destRegion.Sub(destRegion, windowBounds + aDelta);
|
||||
nsIntRegionRectIterator iter(destRegion);
|
||||
const nsIntRect* invalidate;
|
||||
while ((invalidate = iter.Next()) != nsnull) {
|
||||
NSRect rect;
|
||||
GeckoRectToNSRect(*invalidate, rect);
|
||||
[mView setNeedsDisplayInRect:rect];
|
||||
}
|
||||
|
||||
// Leopard, at least, has a nasty bug where calling scrollRect:by: doesn't
|
||||
// actually trigger a window update. A window update is only triggered
|
||||
|
Loading…
Reference in New Issue
Block a user