diff options
-rw-r--r-- | src/console_gui.cpp | 5 | ||||
-rw-r--r-- | src/video/video_driver.hpp | 5 | ||||
-rw-r--r-- | src/window.cpp | 11 | ||||
-rw-r--r-- | src/window_gui.h | 5 |
4 files changed, 21 insertions, 5 deletions
diff --git a/src/console_gui.cpp b/src/console_gui.cpp index 916a2ec74..0555f25c6 100644 --- a/src/console_gui.cpp +++ b/src/console_gui.cpp @@ -374,6 +374,11 @@ struct IConsoleWindow : Window this->Scroll(-wheel); } + void OnFocus() override + { + VideoDriver::GetInstance()->EditBoxGainedFocus(); + } + void OnFocusLost() override { VideoDriver::GetInstance()->EditBoxLostFocus(); diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index b774c7ba6..d7d853c1f 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -94,6 +94,11 @@ public: virtual void EditBoxLostFocus() {} /** + * An edit box gained the input focus + */ + virtual void EditBoxGainedFocus() {} + + /** * Get the currently active instance of the video driver. */ static VideoDriver *GetInstance() { diff --git a/src/window.cpp b/src/window.cpp index 25e4eb95a..c25751fbb 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -499,11 +499,20 @@ bool Window::SetFocusedWidget(int widget_index) if (this->nested_focus->type == WWT_EDITBOX) VideoDriver::GetInstance()->EditBoxLostFocus(); } this->nested_focus = this->GetWidget<NWidgetCore>(widget_index); + if (this->nested_focus->type == WWT_EDITBOX) VideoDriver::GetInstance()->EditBoxGainedFocus(); return true; } /** - * Called when window looses focus + * Called when window gains focus + */ +void Window::OnFocus() +{ + if (this->nested_focus != nullptr && this->nested_focus->type == WWT_EDITBOX) VideoDriver::GetInstance()->EditBoxGainedFocus(); +} + +/** + * Called when window loses focus */ void Window::OnFocusLost() { diff --git a/src/window_gui.h b/src/window_gui.h index db42cafcd..a7e28cf78 100644 --- a/src/window_gui.h +++ b/src/window_gui.h @@ -592,10 +592,7 @@ public: */ virtual void SetStringParameters(int widget) const {} - /** - * Called when window gains focus - */ - virtual void OnFocus() {} + virtual void OnFocus(); virtual void OnFocusLost(); |