diff --git a/src/osk_gui.cpp b/src/osk_gui.cpp index cb4386ee60..b87bbf79a0 100644 --- a/src/osk_gui.cpp +++ b/src/osk_gui.cpp @@ -162,22 +162,11 @@ struct OskWindow : public Window { } switch (widget) { - case OSK_WIDGET_TEXT: { - /* Find the edit box of the parent window and give focus to that */ - if (this->parent->widget != NULL) { - const Widget *wi = this->parent->GetWidgetOfType(WWT_EDITBOX); - if (wi != NULL) this->parent->focused_widget = wi; - } - if (this->parent->nested_root != NULL) { - const NWidgetCore *nwid = dynamic_cast(this->parent->nested_root->GetWidgetOfType(WWT_EDITBOX)); - if (nwid != NULL) this->parent->nested_focus = nwid; - } - - /* Give focus to parent window */ + case OSK_WIDGET_TEXT: + /* Return focus to the parent widget and window. */ + this->parent->SetFocusedWidget(this->text_btn); SetFocusedWindow(this->parent); - break; - } case OSK_WIDGET_BACKSPACE: if (DeleteTextBufferChar(&this->qs->text, WKC_BACKSPACE)) this->InvalidateParent();