aboutsummaryrefslogtreecommitdiff
path: root/emcc.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2017-09-20 16:38:31 +0100
committerSimon Tatham <anakin@pobox.com>2017-09-20 18:03:44 +0100
commitd72db91888c1efddd56c67eee665b0a83c9329eb (patch)
treead55626ee7c32ec425099a6da0ef9338f400c3cd /emcc.c
parente4d05c36d996c3053a66ca29cfe84e9652d501e3 (diff)
downloadpuzzles-d72db91888c1efddd56c67eee665b0a83c9329eb.zip
puzzles-d72db91888c1efddd56c67eee665b0a83c9329eb.tar.gz
puzzles-d72db91888c1efddd56c67eee665b0a83c9329eb.tar.bz2
puzzles-d72db91888c1efddd56c67eee665b0a83c9329eb.tar.xz
Map Ctrl-Shift-Z to Redo.
This is in addition to the existing keystrokes r, ^R and ^Y. I've become used to Ctrl-Shift-Z in other GUI games, and my fingers keep getting confused when my own puzzles don't handle it the same way.
Diffstat (limited to 'emcc.c')
-rw-r--r--emcc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/emcc.c b/emcc.c
index a55f0a6..23ab333 100644
--- 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';
+ } 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) {
@@ -323,10 +325,10 @@ void key(int keycode, int charcode, const char *key, const char *chr,
}
if (keyevent >= 0) {
- if (shift && keyevent >= 0x100)
+ if (shift && (keyevent >= 0x100 && !IS_UI_FAKE_KEY(keyevent)))
keyevent |= MOD_SHFT;
- if (ctrl) {
+ if (ctrl && !IS_UI_FAKE_KEY(keyevent)) {
if (keyevent >= 0x100)
keyevent |= MOD_CTRL;
else