1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:37:34 +00:00

LibGUI: Let Widgets track their focus proxy delegators

And update them on relevant events.
This commit is contained in:
thankyouverycool 2022-11-17 11:15:34 -05:00 committed by Andreas Kling
parent 4aa608aa71
commit 3b18226fcb
2 changed files with 31 additions and 1 deletions

View file

@ -226,6 +226,9 @@ public:
Widget const* focus_proxy() const { return m_focus_proxy; }
void set_focus_proxy(Widget*);
Vector<WeakPtr<Widget>>& focus_delegators() { return m_focus_delegators; }
Vector<WeakPtr<Widget>> const& focus_delegators() const { return m_focus_delegators; }
void set_focus_policy(FocusPolicy policy);
FocusPolicy focus_policy() const;
@ -406,6 +409,9 @@ protected:
void show_or_hide_tooltip();
void add_focus_delegator(Widget*);
void remove_focus_delegator(Widget*);
private:
virtual bool is_widget() const final { return true; }
@ -453,6 +459,7 @@ private:
String m_title { String::empty() };
WeakPtr<Widget> m_focus_proxy;
Vector<WeakPtr<Widget>> m_focus_delegators;
FocusPolicy m_focus_policy { FocusPolicy::NoFocus };
AK::Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap>> m_override_cursor { Gfx::StandardCursor::None };