From 7e8945601a720b49159683ff760fbcd626b95f82 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 13 Jun 2020 15:16:56 +0200 Subject: [PATCH] LibWeb: Turn into CSS text-align Note that align=center and align=middle both behave like the
element, and not like text-align:center. --- Libraries/LibWeb/CSS/StyleProperties.cpp | 5 +++++ Libraries/LibWeb/CSS/StyleProperties.h | 1 + Libraries/LibWeb/DOM/AttributeNames.h | 1 + Libraries/LibWeb/DOM/HTMLTableCellElement.cpp | 8 ++++++++ 4 files changed, 15 insertions(+) diff --git a/Libraries/LibWeb/CSS/StyleProperties.cpp b/Libraries/LibWeb/CSS/StyleProperties.cpp index 37c89240e2..d146bd05b9 100644 --- a/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -55,6 +55,11 @@ void StyleProperties::set_property(CSS::PropertyID id, NonnullRefPtr m_property_values.set((unsigned)id, move(value)); } +void StyleProperties::set_property(CSS::PropertyID id, const StringView& value) +{ + m_property_values.set((unsigned)id, StringStyleValue::create(value)); +} + Optional> StyleProperties::property(CSS::PropertyID id) const { auto it = m_property_values.find((unsigned)id); diff --git a/Libraries/LibWeb/CSS/StyleProperties.h b/Libraries/LibWeb/CSS/StyleProperties.h index 3d18f3a86b..1a391fcf16 100644 --- a/Libraries/LibWeb/CSS/StyleProperties.h +++ b/Libraries/LibWeb/CSS/StyleProperties.h @@ -52,6 +52,7 @@ public: } void set_property(CSS::PropertyID, NonnullRefPtr value); + void set_property(CSS::PropertyID, const StringView&); Optional> property(CSS::PropertyID) const; Length length_or_fallback(CSS::PropertyID, const Length& fallback) const; diff --git a/Libraries/LibWeb/DOM/AttributeNames.h b/Libraries/LibWeb/DOM/AttributeNames.h index 86deac13d4..af155b3995 100644 --- a/Libraries/LibWeb/DOM/AttributeNames.h +++ b/Libraries/LibWeb/DOM/AttributeNames.h @@ -55,6 +55,7 @@ void initialize(); __ENUMERATE_HTML_ATTRIBUTE(defer) \ __ENUMERATE_HTML_ATTRIBUTE(bgcolor) \ __ENUMERATE_HTML_ATTRIBUTE(size) \ + __ENUMERATE_HTML_ATTRIBUTE(align) \ __ENUMERATE_HTML_ATTRIBUTE(colspan) #define __ENUMERATE_HTML_ATTRIBUTE(name) extern FlyString name; diff --git a/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp b/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp index 3e865bad1d..a76ce44315 100644 --- a/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp +++ b/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp @@ -44,6 +44,14 @@ void HTMLTableCellElement::apply_presentational_hints(StyleProperties& style) co auto color = Color::from_string(value); if (color.has_value()) style.set_property(CSS::PropertyID::BackgroundColor, ColorStyleValue::create(color.value())); + return; + } + if (name == HTML::AttributeNames::align) { + if (value.equals_ignoring_case("center") || value.equals_ignoring_case("middle")) + style.set_property(CSS::PropertyID::TextAlign, StringView("-libweb-center")); + else + style.set_property(CSS::PropertyID::TextAlign, value.view()); + return; } }); }