From bac0dd5e3d8a6b5d4d9fbb17fb7b346c266ba3c6 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Sun, 7 Mar 2021 03:24:20 -0800 Subject: [PATCH] LibGUI: Use AK_ENUM_BITWISE_OPERATORS for the FocusPolicy enum --- Userland/Libraries/LibGUI/Widget.cpp | 2 +- Userland/Libraries/LibGUI/Widget.h | 3 +++ Userland/Libraries/LibGUI/Window.cpp | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibGUI/Widget.cpp b/Userland/Libraries/LibGUI/Widget.cpp index 65dfdd4de7..151f200b48 100644 --- a/Userland/Libraries/LibGUI/Widget.cpp +++ b/Userland/Libraries/LibGUI/Widget.cpp @@ -389,7 +389,7 @@ void Widget::handle_mouseup_event(MouseEvent& event) void Widget::handle_mousedown_event(MouseEvent& event) { - if (((unsigned)focus_policy() & (unsigned)FocusPolicy::ClickFocus)) + if (has_flag(focus_policy(), FocusPolicy::ClickFocus)) set_focus(true, FocusSource::Mouse); mousedown_event(event); if (event.button() == MouseButton::Right) { diff --git a/Userland/Libraries/LibGUI/Widget.h b/Userland/Libraries/LibGUI/Widget.h index 642597fa71..2910186247 100644 --- a/Userland/Libraries/LibGUI/Widget.h +++ b/Userland/Libraries/LibGUI/Widget.h @@ -26,6 +26,7 @@ #pragma once +#include #include #include #include @@ -80,6 +81,8 @@ enum class FocusPolicy { StrongFocus = TabFocus | ClickFocus, }; +AK_ENUM_BITWISE_OPERATORS(FocusPolicy) + class Widget : public Core::Object { C_OBJECT(Widget) public: diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp index a088d96db2..f88f7b5004 100644 --- a/Userland/Libraries/LibGUI/Window.cpp +++ b/Userland/Libraries/LibGUI/Window.cpp @@ -831,10 +831,10 @@ Vector Window::focusable_widgets(FocusSource source) const bool widget_accepts_focus = false; switch (source) { case FocusSource::Keyboard: - widget_accepts_focus = ((unsigned)widget.focus_policy() & (unsigned)FocusPolicy::TabFocus); + widget_accepts_focus = has_flag(widget.focus_policy(), FocusPolicy::TabFocus); break; case FocusSource::Mouse: - widget_accepts_focus = ((unsigned)widget.focus_policy() & (unsigned)FocusPolicy::ClickFocus); + widget_accepts_focus = has_flag(widget.focus_policy(), FocusPolicy::ClickFocus); break; case FocusSource::Programmatic: widget_accepts_focus = widget.focus_policy() != FocusPolicy::NoFocus;