Open
Bug 151682
Opened 22 years ago
Updated 2 years ago
ResizeView() invalidates too much when typing in a text widget
Categories
(Core :: Web Painting, defect, P2)
Core
Web Painting
Tracking
()
NEW
Future
People
(Reporter: kinmoz, Unassigned)
References
Details
(Keywords: testcase)
Attachments
(1 file)
340 bytes,
text/html
|
Details |
This bug was filed as an offshoot of bug 141900 (Text entry fields in forms excruciatingly slow) to address the one remaining issue caused by nsViewManager::ResizeView(). If you turn on paint flashing and type inside a textarea, you'll notice that we invalidate and repaint the entire textarea for each character we type. In bug 141900 comment 21, roc+moz@cs.cmu.edu says that this is a hack to compensate for the fact that layout does not invalidate all the areas it needs to when resizing a view. We need to address this problem some day.
Taking
Hey, I thought I was the owner of views now.
Would this be why the caret disappears when typing in the url bar, and jumps to the front when auto-completing, or is that a separate issue?
Dean, the problem you mention is bug 151882, which was caused my turning on of async updates for text widgets, I know the exact line that is causing the problem, but I'm hoping to fix that issue in conjunction with bug 54153 since it forces us to rethink when we should be redrawing the caret.
Updated•22 years ago
|
Priority: -- → P2
Target Milestone: --- → Future
Comment 6•22 years ago
|
||
Testcase. This bug is probably the main reason why typing in textfields is slow.
er, taking!!!
Assignee: kmcclusk → roc+moz
To really fix this well we have to change ResizeView to paint NOTHING at all. The problem is, suppose we have a positioned element with zero size which has animated children. The positioned element's view will change size to fit all the children as they move around. Even repainting the difference between the old and new dimensions is wasteful. I think both positioning and resizing views should paint nothing, leaving it up to layout to invalidate the frames involved. Definitely 1.3alpha stuff. It will probably cause regressions for weeks while we track down all the places where the code is currently depending on conservative painting.
Comment 9•22 years ago
|
||
I agree, only layout has enough information to optimize the invalidation of damaged areas so the viewmanager should not invalidate on Resize.
Comment 10•22 years ago
|
||
Reproduced in Mozilla/5.0 (Windows; U; Windows NT 5.0; en-CA; rv:1.0.2) Gecko/20021120 Netscape/7.01. Testcase keword added.
Keywords: testcase
Updated•15 years ago
|
QA Contact: chrispetersen → layout.view-rendering
Assignee: roc → nobody
Assignee | ||
Updated•6 years ago
|
Component: Layout: View Rendering → Layout: Web Painting
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•