diff --git a/LibGUI/GTextBox.cpp b/LibGUI/GTextBox.cpp index f09c2cbe86a..a04b1c94743 100644 --- a/LibGUI/GTextBox.cpp +++ b/LibGUI/GTextBox.cpp @@ -8,7 +8,6 @@ GTextBox::GTextBox(GWidget* parent) : GWidget(parent) { - start_timer(500); } GTextBox::~GTextBox() @@ -138,3 +137,13 @@ void GTextBox::timer_event(GTimerEvent&) m_cursor_blink_state = !m_cursor_blink_state; update(); } + +void GTextBox::focusin_event(GEvent&) +{ + start_timer(500); +} + +void GTextBox::focusout_event(GEvent&) +{ + stop_timer(); +} diff --git a/LibGUI/GTextBox.h b/LibGUI/GTextBox.h index ad9c8dd5f82..8c203155acd 100644 --- a/LibGUI/GTextBox.h +++ b/LibGUI/GTextBox.h @@ -20,6 +20,8 @@ private: virtual void mousedown_event(GMouseEvent&) override; virtual void keydown_event(GKeyEvent&) override; virtual void timer_event(GTimerEvent&) override; + virtual void focusin_event(GEvent&) override; + virtual void focusout_event(GEvent&) override; virtual bool accepts_focus() const override { return true; } void handle_backspace(); diff --git a/LibGUI/GWidget.cpp b/LibGUI/GWidget.cpp index ef7a118b990..2a4c2d419ab 100644 --- a/LibGUI/GWidget.cpp +++ b/LibGUI/GWidget.cpp @@ -39,8 +39,9 @@ void GWidget::event(GEvent& event) m_has_pending_paint_event = false; return paint_event(static_cast(event)); case GEvent::FocusIn: - case GEvent::FocusOut: return focusin_event(event); + case GEvent::FocusOut: + return focusout_event(event); case GEvent::Show: return show_event(static_cast(event)); case GEvent::Hide: