Closed Bug 46311 Opened 24 years ago Closed 24 years ago

Avoid unnecessary repaint when hiding views with widgets

Categories

(Core :: Web Painting, enhancement, P3)

x86
Windows NT
enhancement

Tracking

()

VERIFIED FIXED
Future

People

(Reporter: roc, Assigned: roc)

References

Details

(Keywords: perf)

When a view with a widget (e.g. a popup menu) is hidden using nsViewManager2::SetViewVisibility(), we redraw the rectangle of the parent view corresponding to the area covered by the view that's being hidden. This is pointless because the widget will be hidden anyway, causing the native widget system to generate its own repaint events. On some platforms (e.g. Windows) the area underneath the hidden widget can be repainted from backing store, which makes Mozilla's own repainting completely unnecessary and wasteful. The same logic applies when setting views with native widgets to be visible. I have a patch, which I will attach when I can access CVS again.
Adding perf keyword This bug has been marked "future" because the original netscape engineer working on this is over-burdened. If you feel this is an error, that you or another known resource will be working on this bug,or if it blocks your work in some way -- please attach your concern to the bug for reconsideration.
Status: NEW → ASSIGNED
Keywords: perf
Target Milestone: --- → Future
I'll take this. If my nsViewManager2 project gets checked in, this fix will go in with it.
Assignee: kmcclusk → roc+moz
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
Depends on: 39621
My new view manager is checked in and enabled, and so this bug is fixed.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Marking verified per last commnents
Status: RESOLVED → VERIFIED
Component: Layout: View Rendering → Layout: Web Painting
You need to log in before you can comment on or make changes to this bug.