# HG changeset patch # User rubidium # Date 2010-01-02 16:05:27 # Node ID 68a81a1cb372bb07d977b8252fb1988fdc1e2fa2 # Parent 34881ea51ab08af689ffe7fbfd624d84b8634c14 (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 diff --git a/src/highscore_gui.cpp b/src/highscore_gui.cpp --- a/src/highscore_gui.cpp +++ b/src/highscore_gui.cpp @@ -62,6 +62,29 @@ struct EndGameHighScoreBaseWindow : Wind { 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 */