diff --git a/Userland/Libraries/LibGUI/Button.cpp b/Userland/Libraries/LibGUI/Button.cpp index 10874bd0e4..90168754da 100644 --- a/Userland/Libraries/LibGUI/Button.cpp +++ b/Userland/Libraries/LibGUI/Button.cpp @@ -291,4 +291,14 @@ Optional Button::calculated_min_size() const return UISize(width, height); } +Optional DialogButton::calculated_min_size() const +{ + int constexpr scale = 8; + int constexpr padding = 6; + int width = max(80, font().presentation_size() * scale); + int height = max(22, font().pixel_size_rounded_up() + padding); + + return UISize(width, height); +} + } diff --git a/Userland/Libraries/LibGUI/Button.h b/Userland/Libraries/LibGUI/Button.h index 6936517963..8dd50fa675 100644 --- a/Userland/Libraries/LibGUI/Button.h +++ b/Userland/Libraries/LibGUI/Button.h @@ -95,8 +95,11 @@ public: explicit DialogButton(String text = {}) : Button(move(text)) { - set_fixed_width(80); + set_min_size({ SpecialDimension::Shrink }); + set_preferred_size({ SpecialDimension::Shrink }); } + + virtual Optional calculated_min_size() const override; }; }