From 66721ffd3657c4daa09693b71e8205bd24c1200a Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 10 Oct 2009 12:11:05 +0000 Subject: (svn r17751) -Fix [FS#3253]: sometimes clicking on a for the user unfocused edit box would show the OSK (Zuu) --- src/window.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/window.cpp b/src/window.cpp index 9da50f6b2..71a776464 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -360,7 +360,16 @@ static void DispatchLeftClickEvent(Window *w, int x, int y, bool double_click) DeleteWindowById(WC_OSK, 0); } - focused_widget_changed = w->SetFocusedWidget(widget_index); + /* focused_widget_changed is 'now' only true if the window this widget + * is in gained focus. In that case it must remain true, also if the + * local widget focus did not change. As such it's the logical-or of + * both changed states. + * + * If this is not preserved, then the OSK window would be opened when + * a user has the edit box focused and then click on another window and + * then back again on the edit box (to type some text). + */ + focused_widget_changed |= w->SetFocusedWidget(widget_index); } if (widget_type & WWB_PUSHBUTTON) { -- cgit v1.2.3-70-g09d2