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

LibGUI: Make focus events more aware of why focus is changing

This patch adds GUI::FocusEvent which has a GUI::FocusSource.
The focus source is one of three things:

- Programmatic
- Mouse
- Keyboard

This allows receivers of focus events to implement different behaviors
depending on how they receive/lose focus.
This commit is contained in:
Andreas Kling 2020-08-14 19:56:40 +02:00
parent 110b3d89d3
commit 75b8f4e4e6
14 changed files with 94 additions and 41 deletions

View file

@ -165,7 +165,7 @@ void ConsoleWidget::clear_output()
m_output_view->update();
}
void ConsoleWidget::focusin_event(Core::Event&)
void ConsoleWidget::focusin_event(GUI::FocusEvent&)
{
m_input->set_focus(true);
}

View file

@ -48,7 +48,7 @@ private:
ConsoleWidget();
virtual bool accepts_focus() const override { return true; }
virtual void focusin_event(Core::Event&) override;
virtual void focusin_event(GUI::FocusEvent&) override;
RefPtr<GUI::TextBox> m_input;
RefPtr<Web::PageView> m_output_view;