1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 19:05:08 +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

@ -1147,7 +1147,7 @@ void TextEditor::set_cursor(const TextPosition& a_position)
m_highlighter->cursor_did_change();
}
void TextEditor::focusin_event(Core::Event&)
void TextEditor::focusin_event(FocusEvent&)
{
m_cursor_state = true;
update_cursor();
@ -1156,7 +1156,7 @@ void TextEditor::focusin_event(Core::Event&)
on_focusin();
}
void TextEditor::focusout_event(Core::Event&)
void TextEditor::focusout_event(FocusEvent&)
{
stop_timer();
if (on_focusout)