summaryrefslogtreecommitdiff
path: root/src/misc_gui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc_gui.cpp')
-rw-r--r--src/misc_gui.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index bcd152e82..076e74231 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -1072,11 +1072,10 @@ bool HandleCaret(Textbuf *tb)
bool QueryString::HasEditBoxFocus(const Window *w, int wid) const
{
- return (w->window_class == WC_OSK &&
- _focused_window == w->parent &&
- w->parent->focused_widget != NULL &&
- w->parent->focused_widget->type == WWT_EDITBOX) ||
- w->IsWidgetGloballyFocused(wid);
+ if (w->IsWidgetGloballyFocused(wid)) return true;
+ if (w->window_class != WC_OSK || _focused_window != w->parent) return false;
+ return (w->parent->focused_widget != NULL && w->parent->focused_widget->type == WWT_EDITBOX) ||
+ (w->parent->nested_focus != NULL && w->parent->nested_focus->type == WWT_EDITBOX);
}
HandleEditBoxResult QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state)