From de3cff9e1a4ad7982c6de512fd043dd6d3acf52c Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 31 Dec 2009 18:11:03 +0000 Subject: (svn r18675) -Add [FS#3256]: function to remove focus from all widgets in a window --- src/window.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/window.cpp') diff --git a/src/window.cpp b/src/window.cpp index ea3b0bb98..82d286d5a 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -132,6 +132,18 @@ bool EditBoxInGlobalFocus() return _focused_window->nested_focus != NULL && _focused_window->nested_focus->type == WWT_EDITBOX; } +/** + * Makes no widget on this window have focus. The function however doesn't change which window has focus. + */ +void Window::UnfocusFocusedWidget() +{ + if (this->nested_focus != NULL) { + /* Repaint the widget that lost focus. A focused edit box may else leave the caret on the screen. */ + this->nested_focus->SetDirty(this); + this->nested_focus = NULL; + } +} + /** * Set focus within this window to the given widget. The function however doesn't change which window has focus. * @param widget_index Index of the widget in the window to set the focus to. -- cgit v1.2.3-54-g00ecf