X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=emcc.c;h=23ab333f5db0cb58b7579b10b9f974d4e45f9c95;hb=db313b3948d27244dd7c34c2609c66d6204d8931;hp=a55f0a69b387b21e12ccfadddd4e81bc02ee8b08;hpb=e4d05c36d996c3053a66ca29cfe84e9652d501e3;p=sgt-puzzles.git 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