diff options
author | Andreas Kling <kling@serenityos.org> | 2020-06-24 00:09:45 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-06-24 00:09:45 +0200 |
commit | 26eef6501765e6801a86497b5ab98e059c05ea61 (patch) | |
tree | 60de6fa541161b64c99444f7538ca286c17b5604 /Libraries/LibWeb | |
parent | f4ecb5362f1929b95f253e3e4eb700b4484069cc (diff) | |
download | serenity-26eef6501765e6801a86497b5ab98e059c05ea61.zip |
LibWeb: Use the cached text-align value in LineBox::add_fragment()
Diffstat (limited to 'Libraries/LibWeb')
-rw-r--r-- | Libraries/LibWeb/Layout/LayoutNode.h | 8 | ||||
-rw-r--r-- | Libraries/LibWeb/Layout/LineBox.cpp | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/Libraries/LibWeb/Layout/LayoutNode.h b/Libraries/LibWeb/Layout/LayoutNode.h index 2dcca0b67a..2369ed7661 100644 --- a/Libraries/LibWeb/Layout/LayoutNode.h +++ b/Libraries/LibWeb/Layout/LayoutNode.h @@ -191,6 +191,7 @@ public: const StyleProperties& style() const; CSS::Position position() const; + CSS::TextAlign text_align() const; LayoutNodeWithStyle* parent(); const LayoutNodeWithStyle* parent() const; @@ -299,6 +300,13 @@ inline CSS::Position LayoutNode::position() const return parent()->position(); } +inline CSS::TextAlign LayoutNode::text_align() const +{ + if (m_has_style) + return static_cast<const LayoutNodeWithStyle*>(this)->text_align(); + return parent()->text_align(); +} + inline const LayoutNodeWithStyle* LayoutNode::parent() const { return static_cast<const LayoutNodeWithStyle*>(TreeNode<LayoutNode>::parent()); diff --git a/Libraries/LibWeb/Layout/LineBox.cpp b/Libraries/LibWeb/Layout/LineBox.cpp index b4ae0e08f8..667c696658 100644 --- a/Libraries/LibWeb/Layout/LineBox.cpp +++ b/Libraries/LibWeb/Layout/LineBox.cpp @@ -35,7 +35,7 @@ namespace Web { void LineBox::add_fragment(const LayoutNode& layout_node, int start, int length, int width, int height) { - bool text_align_is_justify = layout_node.style().string_or_fallback(CSS::PropertyID::TextAlign, "left") == "justify"; + bool text_align_is_justify = layout_node.text_align() == CSS::TextAlign::Justify; if (!text_align_is_justify && !m_fragments.is_empty() && &m_fragments.last().layout_node() == &layout_node) { // The fragment we're adding is from the last LayoutNode on the line. // Expand the last fragment instead of adding a new one with the same LayoutNode. |