+2004-12-06 David Harrison <harrison@apple.com>
+
+ Reviewed by Ken Kocienda and Dave Hyatt (OOPS!).
+
+ <rdar://problem/3849947> Typing after pasting line does not appear until after window resize.
+
+
+ * khtml/rendering/render_flow.cpp:
+ (RenderFlow::dirtyLinesFromChangedChild):
+ Dirty the line above because new child can inval the cached line break position of previous line.
+
2004-12-06 David Hyatt <hyatt@apple.com>
Fix for 3254464, radio buttons do not work for quiz on netscape.com. Left/top overflow needed to be implemented.
// If we found a line box, then dirty it.
if (box) {
+ RootInlineBox* adjacentBox;
box->markDirty();
+
+ // dirty the adjacent lines that might be affected
+ // NOTE: we dirty the previous line because RootInlineBox objects cache
+ // the address of the first object on the next line after a BR, which we may be
+ // invalidating here. For more info, see how RenderBlock::layoutInlineChildren
+ // calls setLineBreakInfo with the result of findNextLineBreak. findNextLineBreak,
+ // despite the name, actually returns the first RenderObject after the BR.
+ // <rdar://problem/3849947> "Typing after pasting line does not appear until after window resize."
+ adjacentBox = box->prevRootBox();
+ if (adjacentBox)
+ adjacentBox->markDirty();
if (child->isBR()) {
- RootInlineBox* next = box->nextRootBox();
- if (next)
- next->markDirty();
+ adjacentBox = box->nextRootBox();
+ if (adjacentBox)
+ adjacentBox->markDirty();
}
}
}