chiark
/
gitweb
/
~ian
/
sgt-puzzles.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Forbid undo of new-game if it would change the params.
[sgt-puzzles.git]
/
emcc.c
diff --git
a/emcc.c
b/emcc.c
index e25fdf86dd633bc9e0d69179b0e136b52209c134..23ab333f5db0cb58b7579b10b9f974d4e45f9c95 100644
(file)
--- a/
emcc.c
+++ b/
emcc.c
@@
-310,6
+310,8
@@
void key(int keycode, int charcode, const char *key, const char *chr,
keyevent = MOD_NUM_KEYPAD | '7';
} else if (!strnullcmp(key, "PageUp") || keycode==33) {
keyevent = MOD_NUM_KEYPAD | '9';
keyevent = MOD_NUM_KEYPAD | '7';
} else if (!strnullcmp(key, "PageUp") || keycode==33) {
keyevent = MOD_NUM_KEYPAD | '9';
+ } else if (shift && ctrl && (keycode & 0x1F) == 26) {
+ keyevent = UI_REDO;
} else if (chr && chr[0] && !chr[1]) {
keyevent = chr[0] & 0xFF;
} else if (keycode >= 96 && keycode < 106) {
} else if (chr && chr[0] && !chr[1]) {
keyevent = chr[0] & 0xFF;
} else if (keycode >= 96 && keycode < 106) {
@@
-323,10
+325,10
@@
void key(int keycode, int charcode, const char *key, const char *chr,
}
if (keyevent >= 0) {
}
if (keyevent >= 0) {
- if (shift &&
keyevent >= 0x100
)
+ if (shift &&
(keyevent >= 0x100 && !IS_UI_FAKE_KEY(keyevent))
)
keyevent |= MOD_SHFT;
keyevent |= MOD_SHFT;
- if (ctrl) {
+ if (ctrl
&& !IS_UI_FAKE_KEY(keyevent)
) {
if (keyevent >= 0x100)
keyevent |= MOD_CTRL;
else
if (keyevent >= 0x100)
keyevent |= MOD_CTRL;
else
@@
-725,7
+727,7
@@
void command(int n)
update_undo_redo();
break;
case 5: /* New Game */
update_undo_redo();
break;
case 5: /* New Game */
- midend_process_key(me, 0, 0,
'n'
);
+ midend_process_key(me, 0, 0,
UI_NEWGAME
);
update_undo_redo();
js_focus_canvas();
break;
update_undo_redo();
js_focus_canvas();
break;
@@
-735,12
+737,12
@@
void command(int n)
js_focus_canvas();
break;
case 7: /* Undo */
js_focus_canvas();
break;
case 7: /* Undo */
- midend_process_key(me, 0, 0,
'u'
);
+ midend_process_key(me, 0, 0,
UI_UNDO
);
update_undo_redo();
js_focus_canvas();
break;
case 8: /* Redo */
update_undo_redo();
js_focus_canvas();
break;
case 8: /* Redo */
- midend_process_key(me, 0, 0,
'r'
);
+ midend_process_key(me, 0, 0,
UI_REDO
);
update_undo_redo();
js_focus_canvas();
break;
update_undo_redo();
js_focus_canvas();
break;