1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 06:48:12 +00:00
serenity/Libraries/LibHTML/Layout
Andreas Kling 735f02900b LibHTML: Implement basic partial style invalidation
This patch makes it possible to call Node::invalidate_style() and have
that node and all of its ancestors recompute their style.

We then figure out if the new style is visually different from the old
style, and if so do a paint invalidation with set_needs_display().
Note that the "are they visually different" code is very incomplete!

Use this to make hover effects a lot more efficient. They no longer
cause a full relayout+repaint, but only a style invalidation.
Style invalidations are still quite heavy though, and there's a lot of
room for improvement there. :^)
2019-10-14 18:33:23 +02:00
..
BoxModelMetrics.cpp LibHTML: Rename ComputedStyle to BoxModelMetrics 2019-10-04 15:50:50 +02:00
BoxModelMetrics.h LibHTML: Rename ComputedStyle to BoxModelMetrics 2019-10-04 15:50:50 +02:00
LayoutBlock.cpp LibHTML: Add some convenient geometry getters on LayoutNode 2019-10-13 18:47:16 +02:00
LayoutBlock.h LibHTML: Fix broken line splitting behavior in LayoutReplaced 2019-10-13 18:47:16 +02:00
LayoutBreak.cpp LibHTML: Use LayoutBlock::add_line_box() in LayoutBreak 2019-10-13 18:47:16 +02:00
LayoutBreak.h LibHTML: Implement the <br> element for line breaking 2019-10-12 13:47:49 +02:00
LayoutDocument.cpp LibHTML: Rename "style_properties" to "style" everywhere 2019-10-07 10:56:44 +02:00
LayoutDocument.h LibHTML: LayoutText should always use parent's style properties 2019-10-04 12:12:39 +02:00
LayoutImage.cpp LibHTML: Implement the <blink> element 2019-10-09 21:25:29 +02:00
LayoutImage.h LibHTML: Implement basic layout for inline <img alt> 2019-10-05 23:29:01 +02:00
LayoutInline.cpp LibHTML: Add LayoutNodeWithStyle class, make LayoutText style-less 2019-10-07 10:56:44 +02:00
LayoutInline.h LibHTML: Add LayoutNodeWithStyle class, make LayoutText style-less 2019-10-07 10:56:44 +02:00
LayoutListItem.cpp LibHTML: Add some convenient geometry getters on LayoutNode 2019-10-13 18:47:16 +02:00
LayoutListItem.h LibHTML: Add LayoutNode classes for "display: list-item" and its marker 2019-10-11 23:16:53 +02:00
LayoutListItemMarker.cpp LibHTML: Add LayoutNode classes for "display: list-item" and its marker 2019-10-11 23:16:53 +02:00
LayoutListItemMarker.h LibHTML: Add LayoutNode classes for "display: list-item" and its marker 2019-10-11 23:16:53 +02:00
LayoutNode.cpp LibHTML: Add some convenient geometry getters on LayoutNode 2019-10-13 18:47:16 +02:00
LayoutNode.h LibHTML: Implement basic partial style invalidation 2019-10-14 18:33:23 +02:00
LayoutReplaced.cpp LibHTML: Fix broken line splitting behavior in LayoutReplaced 2019-10-13 18:47:16 +02:00
LayoutReplaced.h LibHTML: Add LayoutNodeWithStyle class, make LayoutText style-less 2019-10-07 10:56:44 +02:00
LayoutText.cpp LibHTML: Add some convenient geometry getters on LayoutNode 2019-10-13 18:47:16 +02:00
LayoutText.h LibHTML: Collapse whitespace in LayoutText unless white-space: pre; 2019-10-09 16:29:35 +02:00
LineBox.cpp LibHTML: Rewrite inline and text layout 2019-10-03 15:20:13 +02:00
LineBox.h LibHTML: Rewrite inline and text layout 2019-10-03 15:20:13 +02:00
LineBoxFragment.cpp LibHTML: Implement the <blink> element 2019-10-09 21:25:29 +02:00
LineBoxFragment.h LibHTML: Rewrite inline and text layout 2019-10-03 15:20:13 +02:00