Closed Bug 39659 Opened 24 years ago Closed 24 years ago

[ENDER-LITE] Page redraws every time you type

Categories

(Core :: XUL, defect, P3)

All
Mac System 8.5
defect

Tracking

()

VERIFIED DUPLICATE of bug 39885

People

(Reporter: sfraser_bugs, Assigned: mjudge)

Details

(Whiteboard: [nsbeta2+][dogfood-])

Bug to track the problem with ender-lite causing the entire page to redraw every time you type. Actually, I'm seeing that only the contents of the <form> tag get redrawn.
Using invalidate flashing on Mac, i'm seeing that a nsContainerFrame is being moved -- stack looks like: nsGfxTextControlFrame2::Reflow nsContainerFrame::ReflowChild nsGfxScrollFrame::Reflow nsBoxFrame::Reflow nsGfxScrollFrame::Layout nsGfxScrollFrameInner::Layout nsGfxScrollFrameInner::LayoutBox nsContainerBox::LayoutChildAt nsBox::SetBounds nsContainerFrame::PositionFrameView nsViewManager2::MoveViewTo In nsContainerBox::LayoutChildAt, the old rect and new rects are the same (both with x = 0, y = 0), but for some reason (origin weirdness?) this is causing the box to get moved.
So in the stack above (the ReflowChild call from nsGfxTextControlFrame2::Reflow), the view was being moved from (150, 165) to (120,138). But the view is moved back to (150, 165) in the FinishReflowChild() call from nsGfxTextControlFrame2::Reflow(). So we're moving the view away from, and then back to its original location, invalidating all the while.
This patch fixes the moving view problem (i'm not sure if it's correct, tho) Index: nsGfxTextControlFrame2.cpp =================================================================== RCS file: /cvsroot/mozilla/layout/html/forms/src/nsGfxTextControlFrame2.cpp,v retrieving revision 1.23 diff -w -c -1 -r1.23 nsGfxTextControlFrame2.cpp *** nsGfxTextControlFrame2.cpp 2000/05/17 00:07:34 1.23 --- nsGfxTextControlFrame2.cpp 2000/05/17 23:03:44 *************** *** 1271,1275 **** ! rv = ReflowChild(child, aPresContext, kidReflowDesiredSize, kidReflowState, 0, 0, 0, aStatus); // Place and size the child. ! FinishReflowChild(child, aPresContext, kidReflowDesiredSize, aReflowState.mComputedBorderPadding.left, aReflowState.mComputedBorderPadding.top, 0); --- 1271,1280 ---- ! // rv = ReflowChild(child, aPresContext, kidReflowDesiredSize, kidReflowState, 0, 0, 0, aStatus); ! rv = ReflowChild(child, aPresContext, kidReflowDesiredSize, kidReflowState, ! aReflowState.mComputedBorderPadding.left, ! aReflowState.mComputedBorderPadding.top, 0, aStatus); ! // Place and size the child. ! FinishReflowChild(child, aPresContext, kidReflowDesiredSize, ! aReflowState.mComputedBorderPadding.left, aReflowState.mComputedBorderPadding.top, 0); However, there is something else that is still causing extra reflows/repaints.
setting this to m16 and setting to dogfood so we ensure this is fixed before beta2
Keywords: dogfood
Target Milestone: --- → M16
Putting on [nsbeta2+][dogfood-] radar. Does not need a fix ASAP for daily work, but we should fix this for beta2. Will not hold M16 for this.
Whiteboard: [nsbeta2+][dogfood-]
*** This bug has been marked as a duplicate of 39885 ***
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
verified duplicate.
Status: RESOLVED → VERIFIED
Adding keyword to bugs which already show a nsbeta2 triage value in the status whiteboard so the queries don't get screwed up.
Keywords: nsbeta2
You need to log in before you can comment on or make changes to this bug.