Patch from James H to centralise some generally useful cursor-

handling functionality into misc.c.

[originally from svn r8176]
This commit is contained in:
Simon Tatham
2008-09-13 18:26:53 +00:00
parent fe1b91ac49
commit 5ead207060
7 changed files with 112 additions and 12 deletions

View File

@ -1277,8 +1277,7 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
if (button == RIGHT_BUTTON || button == LEFT_BUTTON) {
tx = FROMCOORD(x); ty= FROMCOORD(y);
} else if (button == CURSOR_UP || button == CURSOR_DOWN ||
button == CURSOR_LEFT || button == CURSOR_RIGHT) {
} else if (IS_CURSOR_MOVE(button)) {
int dx = 0, dy = 0;
ui->displaysel = 1;
dx = (button == CURSOR_LEFT) ? -1 : ((button == CURSOR_RIGHT) ? +1 : 0);
@ -1286,8 +1285,7 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
ui->xsel = (ui->xsel + state->params.w + dx) % state->params.w;
ui->ysel = (ui->ysel + state->params.h + dy) % state->params.h;
return ret;
} else if (button == CURSOR_SELECT || button == ' ' || button == '\r' ||
button == '\n') {
} else if (IS_CURSOR_SELECT(button)) {
ui->displaysel = 1;
tx = ui->xsel;
ty = ui->ysel;
@ -1299,7 +1297,7 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
if (COL(state, tx, ty) == 0) return NULL;
if (ISSEL(ui,tx,ty)) {
if (button == RIGHT_BUTTON)
if (button == RIGHT_BUTTON || button == CURSOR_SELECT2)
sel_clear(ui, state);
else
ret = sel_movedesc(ui, state);