mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
This commit is contained in:
parent
19f86951d9
commit
063909962a
|
@ -22,6 +22,7 @@
|
|||
#include "company_base.h"
|
||||
#include "strings_func.h"
|
||||
#include "openttd.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
enum HighscoreWidgets {
|
||||
HSW_BACKGROUND,
|
||||
|
@ -66,6 +67,11 @@ struct EndGameHighScoreBaseWindow : Window {
|
|||
|
||||
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
|
||||
{
|
||||
/* All keys are 'handled' by this window but we want to make
|
||||
* sure that 'quit' still works correctly. Not handling the
|
||||
* quit key is enough so the main toolbar can handle it. */
|
||||
if (IsQuitKey(keycode)) return ES_NOT_HANDLED;
|
||||
|
||||
switch (keycode) {
|
||||
/* Keys for telling we want to go on */
|
||||
case WKC_RETURN:
|
||||
|
@ -74,11 +80,6 @@ struct EndGameHighScoreBaseWindow : Window {
|
|||
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
|
||||
|
|
|
@ -124,6 +124,8 @@ int CheckHotkeyMatch(Hotkey<T> *list, uint16 keycode, T *w, bool global_only = f
|
|||
return -1;
|
||||
}
|
||||
|
||||
bool IsQuitKey(uint16 keycode);
|
||||
|
||||
void LoadHotkeysFromConfig();
|
||||
void SaveHotkeysToConfig();
|
||||
|
||||
|
|
|
@ -467,6 +467,17 @@ Hotkey<MainWindow> MainWindow::global_hotkeys[] = {
|
|||
};
|
||||
Hotkey<MainWindow> *_global_hotkeys = MainWindow::global_hotkeys;
|
||||
|
||||
/**
|
||||
* Does the given keycode match one of the keycodes bound to 'quit game'?
|
||||
* @param keycode The keycode that was pressed by the user.
|
||||
* @return True iff the keycode matches one of the hotkeys for 'quit'.
|
||||
*/
|
||||
bool IsQuitKey(uint16 keycode)
|
||||
{
|
||||
int num = CheckHotkeyMatch<MainWindow>(_global_hotkeys, keycode, NULL);
|
||||
return num == GHK_QUIT;
|
||||
}
|
||||
|
||||
|
||||
void ShowSelectGameWindow();
|
||||
|
||||
|
|
Loading…
Reference in New Issue