summaryrefslogtreecommitdiff
path: root/Libraries/LibWeb
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2020-06-24 00:09:45 +0200
committerAndreas Kling <kling@serenityos.org>2020-06-24 00:09:45 +0200
commit26eef6501765e6801a86497b5ab98e059c05ea61 (patch)
tree60de6fa541161b64c99444f7538ca286c17b5604 /Libraries/LibWeb
parentf4ecb5362f1929b95f253e3e4eb700b4484069cc (diff)
downloadserenity-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.h8
-rw-r--r--Libraries/LibWeb/Layout/LineBox.cpp2
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.