summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2020-05-04 22:43:00 +0200
committerAndreas Kling <kling@serenityos.org>2020-05-04 22:43:00 +0200
commit9df71afdb3e751b853b6b36ef15f776bb78e964b (patch)
treed964a358ea6366c8cd8cef2b4daf2ee09d4bd985
parent0d2beddc74ebf67cb501a1131351401efb6942ac (diff)
downloadserenity-9df71afdb3e751b853b6b36ef15f776bb78e964b.zip
LibWeb: Respect the <input size> attribute a bit more :^)
We now use the size attribute to determine the width of a text input.
-rw-r--r--Libraries/LibWeb/DOM/HTMLInputElement.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/Libraries/LibWeb/DOM/HTMLInputElement.cpp b/Libraries/LibWeb/DOM/HTMLInputElement.cpp
index 34be76773f..66e58b036e 100644
--- a/Libraries/LibWeb/DOM/HTMLInputElement.cpp
+++ b/Libraries/LibWeb/DOM/HTMLInputElement.cpp
@@ -75,6 +75,13 @@ RefPtr<LayoutNode> HTMLInputElement::create_layout_node(const StyleProperties*)
const_cast<HTMLInputElement*>(this)->set_attribute("value", static_cast<const GUI::TextBox&>(widget).text());
};
int text_width = Gfx::Font::default_font().width(value());
+ auto size_value = attribute("size");
+ if (!size_value.is_null()) {
+ bool ok;
+ auto size = size_value.to_int(ok);
+ if (ok && size >= 0)
+ text_width = Gfx::Font::default_font().glyph_width('x') * size;
+ }
text_box.set_relative_rect(0, 0, text_width + 20, 20);
widget = text_box;
}