Closed Bug 116350 Opened 24 years ago Closed 22 years ago

Invalidates should not leak outside of widgets on Mac

Categories

(Core :: Layout, defect)

PowerPC
Mac System 9.x
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.1alpha

People

(Reporter: sfraser_bugs, Assigned: sfraser_bugs)

Details

On Mac, calling nsWindow::Invalidate can invalidate an area that is outside the widget's visible region, thus causing excess drawing. This is visible (in a build with double buffering off) in viewer demo 9, if you scroll frame 3 so that the animated images partially underlay the lower 2 frames. You'd think that, since we maintain an 'mVisRegion' for each nsWindow, it would be easy to intersect the invalidate with this. But if you try this, you'll see problems with frameset drawing. These happen because the layout code sets the size of child frames before their parent frames, so that when we first invalidate child nsWindows (which have their final size, but a zero size parent), they think that their mVisRegion is empty, and fail to invalidate. This bug is probably yet another manifestation of the emulated nature of widgets on the Mac, which results in an inability to target updates at specific widgets.
Target Milestone: --- → mozilla1.1
Taking
Assignee: dcone → sfraser
I checked with QuartzDebug; this is no longer an issue.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.