Merge branch 'NetHack-3.6.0'
This commit is contained in:
+16
-8
@@ -1208,6 +1208,21 @@ onListChar(HWND hWnd, HWND hwndList, WORD ch)
|
|||||||
|
|
||||||
data = (PNHMenuWindow) GetWindowLongPtr(hWnd, GWLP_USERDATA);
|
data = (PNHMenuWindow) GetWindowLongPtr(hWnd, GWLP_USERDATA);
|
||||||
|
|
||||||
|
is_accelerator = FALSE;
|
||||||
|
for (i = 0; i < data->menu.size; i++) {
|
||||||
|
if (data->menu.items[i].accelerator == ch) {
|
||||||
|
is_accelerator = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Don't use switch if input matched an accelerator. Sometimes
|
||||||
|
* accelerators can conflict with menu actions. For example, when
|
||||||
|
* engraving the extra choice of using fingers matches MENU_UNSELECT_ALL.
|
||||||
|
*/
|
||||||
|
if (is_accelerator)
|
||||||
|
goto accelerator;
|
||||||
|
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case MENU_FIRST_PAGE:
|
case MENU_FIRST_PAGE:
|
||||||
i = 0;
|
i = 0;
|
||||||
@@ -1402,6 +1417,7 @@ onListChar(HWND hWnd, HWND hwndList, WORD ch)
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
accelerator:
|
||||||
default:
|
default:
|
||||||
if (strchr(data->menu.gacc, ch)
|
if (strchr(data->menu.gacc, ch)
|
||||||
&& !(ch == '0' && data->menu.counting)) {
|
&& !(ch == '0' && data->menu.counting)) {
|
||||||
@@ -1450,14 +1466,6 @@ onListChar(HWND hWnd, HWND hwndList, WORD ch)
|
|||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_accelerator = FALSE;
|
|
||||||
for (i = 0; i < data->menu.size; i++) {
|
|
||||||
if (data->menu.items[i].accelerator == ch) {
|
|
||||||
is_accelerator = TRUE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
|
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
|
||||||
|| is_accelerator) {
|
|| is_accelerator) {
|
||||||
if (data->how == PICK_ANY || data->how == PICK_ONE) {
|
if (data->how == PICK_ANY || data->how == PICK_ONE) {
|
||||||
|
|||||||
Reference in New Issue
Block a user