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)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- -
fennec 1.0- ---

People

(Reporter: stechz, Unassigned)

References

Details

(Keywords: testcase)

Attachments

(2 files)

Attached file Test case
See screenshot. The entire table is invalidated, as well as an arbitrary area below the table.
Summary: Change of outline causes large invalidation area → Change of outline inside table causes large invalidation area
Product: Fennec → Core
QA Contact: general → general
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
tracking-fennec: --- → ?
Blocks: 515696
Flags: blocking1.9.2?
Would it be possible to get this in for 1.9.2?
Flags: wanted-fennec1.0+
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
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.

Attachment

General

Created:
Updated:
Size: