Closed
Bug 519339
Opened 16 years ago
Closed 13 years ago
Change of outline near left edge of block causes the whole block to be invalidated
Categories
(Core :: Layout: Block and Inline, defect)
Core
Layout: Block and Inline
Tracking
()
RESOLVED
FIXED
People
(Reporter: stechz, Unassigned)
References
Details
(Keywords: testcase)
Attachments
(2 files)
See screenshot. The entire table is invalidated, as well as an arbitrary area below the table.
| Reporter | ||
Comment 1•16 years ago
|
||
| Reporter | ||
Updated•16 years ago
|
Summary: Change of outline causes large invalidation area → Change of outline inside table causes large invalidation area
| Reporter | ||
Updated•16 years ago
|
Product: Fennec → Core
QA Contact: general → general
Comment 2•16 years ago
|
||
The reason the big area (outside the table bounds) is invalidated is that after reflowing the first line of the <body> (or the <html>; same thing) we have:
(gdb) p oldCombinedArea
$95 = {
x = 0,
y = 0,
width = 47760,
height = 28488
}
(gdb) p lineCombinedArea
$96 = {
x = -180,
y = 0,
width = 47940,
height = 28488
}
and then we go on to invalidate the union of the combined areas.
And the reason for that -180 is that the outer table has overflow poking 180 units out its left. The rowgroup has the same but 300 units, and same for the table row and cell. The table cell's block has the same but 360 units. And of course the thing overflowing to the left is the outline.
The table is completely irrelevant; if I replace it with a div, or just have the <a> as a direct child of the div that's a child of the body, I get the same effect. If the nesting is deeper we just invalidate the big area more times.
There's some table-specific invalidation going on here too, in that we invalidate the entire row if the cell's position changed, I think, but I figure we can worry about that once the block issue is fixed and it's not confounding things here.
Component: General → Layout: Block and Inline
QA Contact: general → layout.block-and-inline
Summary: Change of outline inside table causes large invalidation area → Change of outline near left edge of block causes the whole block to be invalidated
| Reporter | ||
Updated•16 years ago
|
tracking-fennec: --- → ?
| Reporter | ||
Updated•15 years ago
|
Flags: blocking1.9.2?
I don't see an easy fix here.
Comment 5•15 years ago
|
||
Not blocking, I don't think, but we'll try for 1.9.3
blocking2.0: --- → ?
tracking-fennec: ? → 1.0-
Flags: blocking1.9.2? → blocking1.9.2-
Michael's patch to reimplement reflow invalidation would fix this, or make it much easier to fix.
Depends on: dlbi
blocking2.0: ? → -
Comment 7•13 years ago
|
||
Fixed by bug 539356 - We now only invalidate the text/border area.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•