1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:48:11 +00:00
serenity/Libraries/LibHTML/DOM
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
..
CharacterData.cpp LibHTML: Add Comment and CharacterData nodes and improve HTML parsing 2019-10-12 23:34:05 +02:00
CharacterData.h LibHTML: Add Comment and CharacterData nodes and improve HTML parsing 2019-10-12 23:34:05 +02:00
Comment.cpp LibHTML: Add Comment and CharacterData nodes and improve HTML parsing 2019-10-12 23:34:05 +02:00
Comment.h LibHTML: Add Comment and CharacterData nodes and improve HTML parsing 2019-10-12 23:34:05 +02:00
Document.cpp LibHTML: Implement basic partial style invalidation 2019-10-14 18:33:23 +02:00
Document.h LibHTML: Rename Document's invalidate_{style,layout}() to update_foo() 2019-10-14 17:57:06 +02:00
DocumentType.cpp LibHTML: Add basic <!DOCTYPE> parsing and a DocumentType class 2019-10-09 20:17:01 +02:00
DocumentType.h LibHTML: Add Comment and CharacterData nodes and improve HTML parsing 2019-10-12 23:34:05 +02:00
Element.cpp LibHTML: Implement basic partial style invalidation 2019-10-14 18:33:23 +02:00
Element.h LibHTML: Implement basic partial style invalidation 2019-10-14 18:33:23 +02:00
ElementFactory.cpp LibHTML: Implement the <br> element for line breaking 2019-10-12 13:47:49 +02:00
ElementFactory.h LibHTML: Move Element construction to a separate file 2019-10-12 13:02:38 +02:00
HTMLAnchorElement.cpp LibHTML: Detect hovering over links 2019-09-29 11:59:38 +02:00
HTMLAnchorElement.h LibHTML: Add is<ElementType> and to<ElementType> helper functions 2019-10-06 20:38:26 +02:00
HTMLBlinkElement.cpp LibHTML: Implement the <blink> element 2019-10-09 21:25:29 +02:00
HTMLBlinkElement.h LibHTML: Implement the <blink> element 2019-10-09 21:25:29 +02:00
HTMLBodyElement.cpp LibHTML: Use an enum for CSS property ID's 2019-10-08 15:35:05 +02:00
HTMLBodyElement.h LibHTML: Templatize Node::first_child_of_type<T>() 2019-10-06 20:47:57 +02:00
HTMLBRElement.cpp LibHTML: Implement the <br> element for line breaking 2019-10-12 13:47:49 +02:00
HTMLBRElement.h LibHTML: Implement the <br> element for line breaking 2019-10-12 13:47:49 +02:00
HTMLElement.cpp LibHTML: Detect hovering over links 2019-09-29 11:59:38 +02:00
HTMLElement.h LibHTML: Add is<ElementType> and to<ElementType> helper functions 2019-10-06 20:38:26 +02:00
HTMLFontElement.cpp LibHTML: Use an enum for CSS property ID's 2019-10-08 15:35:05 +02:00
HTMLFontElement.h LibHTML: Add support for <font color> 2019-10-04 21:14:59 +02:00
HTMLHeadElement.cpp LibHTML: Add a way to get a Document's title 2019-09-29 16:24:57 +02:00
HTMLHeadElement.h LibHTML: Templatize Node::first_child_of_type<T>() 2019-10-06 20:47:57 +02:00
HTMLHeadingElement.cpp LibHTML: Add HTMLHeadingElement for <h1> through <h6> 2019-09-29 12:26:15 +02:00
HTMLHeadingElement.h LibHTML: Add HTMLHeadingElement for <h1> through <h6> 2019-09-29 12:26:15 +02:00
HTMLHRElement.cpp LibHTML: Implement the <hr> element 2019-10-01 20:50:11 +02:00
HTMLHRElement.h LibHTML: Implement the <hr> element 2019-10-01 20:50:11 +02:00
HTMLHtmlElement.cpp LibHTML: Add a way to get a Document's title 2019-09-29 16:24:57 +02:00
HTMLHtmlElement.h LibHTML: Add is<ElementType> and to<ElementType> helper functions 2019-10-06 20:38:26 +02:00
HTMLImageElement.cpp LibHTML: Rename Document's invalidate_{style,layout}() to update_foo() 2019-10-14 17:57:06 +02:00
HTMLImageElement.h LibHTML: Support width/height attributes on images 2019-10-06 14:33:00 +02:00
HTMLLinkElement.cpp LibHTML: Rename Document's invalidate_{style,layout}() to update_foo() 2019-10-14 17:57:06 +02:00
HTMLLinkElement.h LibHTML: Start adding support for <link rel="stylesheet"> 2019-10-07 19:06:47 +02:00
HTMLStyleElement.cpp LibHTML: Add a simple <style> element for inline CSS 2019-09-29 17:45:42 +02:00
HTMLStyleElement.h LibHTML: Add a simple <style> element for inline CSS 2019-09-29 17:45:42 +02:00
HTMLTitleElement.cpp LibHTML: Add a way to get a Document's title 2019-09-29 16:24:57 +02:00
HTMLTitleElement.h LibHTML: Templatize Node::first_child_of_type<T>() 2019-10-06 20:47:57 +02:00
Node.cpp LibHTML: Implement basic partial style invalidation 2019-10-14 18:33:23 +02:00
Node.h LibHTML: Implement basic partial style invalidation 2019-10-14 18:33:23 +02:00
ParentNode.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
ParentNode.h LibHTML: Make sure every DOM Node belongs to a Document 2019-09-29 11:43:07 +02:00
Text.cpp LibHTML: Add Comment and CharacterData nodes and improve HTML parsing 2019-10-12 23:34:05 +02:00
Text.h LibHTML: Add Comment and CharacterData nodes and improve HTML parsing 2019-10-12 23:34:05 +02:00