From f77ac3a73cfc07fc6fda5f9493f4a1ac41426449 Mon Sep 17 00:00:00 2001 From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com> Date: Mon, 24 Jan 2022 14:22:02 -0500 Subject: [PATCH] LibGUI: Allow Buttons to set themselves as default Several apps were implementing this behavior ad hoc. This provides a standard API as well as a comfy visual cue for default return key behavior. --- Userland/Libraries/LibGUI/Button.cpp | 28 ++++++++++++++++++- Userland/Libraries/LibGUI/Button.h | 6 ++++ .../Libraries/LibGfx/ClassicStylePainter.cpp | 8 +++--- .../Libraries/LibGfx/ClassicStylePainter.h | 2 +- Userland/Libraries/LibGfx/StylePainter.cpp | 4 +-- Userland/Libraries/LibGfx/StylePainter.h | 4 +-- 6 files changed, 42 insertions(+), 10 deletions(-) diff --git a/Userland/Libraries/LibGUI/Button.cpp b/Userland/Libraries/LibGUI/Button.cpp index 60cbaa26480..3255d4cf4cd 100644 --- a/Userland/Libraries/LibGUI/Button.cpp +++ b/Userland/Libraries/LibGUI/Button.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -25,6 +26,16 @@ Button::Button(String text) set_fixed_height(22); set_focus_policy(GUI::FocusPolicy::StrongFocus); + on_focus_change = [this](bool has_focus, auto) { + if (!is_default()) + return; + if (!has_focus && is