summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryexo <yexo@openttd.org>2009-03-11 09:21:11 +0000
committeryexo <yexo@openttd.org>2009-03-11 09:21:11 +0000
commit2b0b9a6367b993bf437d06236a9cca9025588dd6 (patch)
tree90bfe71b0685ad9f8fb2a7c2ad7a7ab4b4b1b36a
parent13fb01d07dde0e2749eef2948071d513a4685215 (diff)
downloadopenttd-2b0b9a6367b993bf437d06236a9cca9025588dd6.tar.xz
(svn r15669) -Change: Key presses that are not handles by an input box are no longer marked as handled but given to other OnKeyPress handlers. This makes the global shortcuts like F1 work again when an input box is open.
-rw-r--r--src/misc_gui.cpp6
-rw-r--r--src/network/network_gui.cpp2
-rw-r--r--src/window.cpp3
3 files changed, 5 insertions, 6 deletions
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index ce7215c6e..fc6deecab 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -993,8 +993,8 @@ HandleEditBoxResult QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key
default:
if (IsValidChar(key, this->afilter)) {
if (InsertTextBufferChar(&this->text, key)) w->InvalidateWidget(wid);
- } else { // key wasn't caught. Continue only if standard entry specified
- state = (this->afilter == CS_ALPHANUMERAL) ? Window::ES_HANDLED : Window::ES_NOT_HANDLED;
+ } else {
+ state = Window::ES_NOT_HANDLED;
}
}
@@ -1134,7 +1134,7 @@ struct QueryStringWindow : public QueryStringBaseWindow
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
{
- EventState state;
+ EventState state = ES_NOT_HANDLED;
switch (this->HandleEditBoxKey(QUERY_STR_WIDGET_TEXT, key, keycode, state)) {
default: NOT_REACHED();
case HEBR_EDITING: {
diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp
index 4edd09f8a..75046e487 100644
--- a/src/network/network_gui.cpp
+++ b/src/network/network_gui.cpp
@@ -1927,7 +1927,7 @@ struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow {
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
{
- EventState state;
+ EventState state = ES_NOT_HANDLED;
switch (this->HandleEditBoxKey(4, key, keycode, state)) {
default: break;
diff --git a/src/window.cpp b/src/window.cpp
index a72935021..b2fa9e131 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -1750,8 +1750,7 @@ void HandleKeypress(uint32 raw_key)
/* Check if the focused window has a focused editbox */
if (EditBoxInGlobalFocus()) {
/* All input will in this case go to the focused window */
- _focused_window->OnKeyPress(key, keycode);
- return;
+ if (_focused_window->OnKeyPress(key, keycode) == Window::ES_HANDLED) return;
}
/* Call the event, start with the uppermost window. */