From 43a5a4bee8b2121c713782b8f5f1136cbf5e5b53 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 2 Jan 2010 16:05:27 +0000 Subject: (svn r18690) -Fix [FS#3469]: some keys that open windows that want to be located relatively to the toolbars/statusbar could cause a crash when in one of the end game screens --- src/highscore_gui.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/highscore_gui.cpp b/src/highscore_gui.cpp index 02563533d..d4e8c4b13 100644 --- a/src/highscore_gui.cpp +++ b/src/highscore_gui.cpp @@ -62,6 +62,29 @@ struct EndGameHighScoreBaseWindow : Window { { delete this; } + + virtual EventState OnKeyPress(uint16 key, uint16 keycode) + { + switch (keycode) { + /* Keys for telling we want to go on */ + case WKC_RETURN: + case WKC_ESC: + case WKC_SPACE: + delete this; + return ES_HANDLED; + + /* Allow CTRL-Q to work like ALT-F4 in all cases */ + case 'Q' | WKC_CTRL: + case 'Q' | WKC_META: + return ES_NOT_HANDLED; + + default: + /* We want to handle all keys; we don't want windows in + * the background to open. Especially the ones that do + * locate themselves based on the status-/toolbars. */ + return ES_HANDLED; + } + } }; /** End game window shown at the end of the game */ -- cgit v1.2.3-70-g09d2