static int oldFromX, oldFromY;\r
static int timeflag;\r
static int suppressClocks = 0;\r
+static int suppressOneKey = 0;\r
\r
BOOL\r
InitJAWS()\r
return (x%3000 == 0);\r
}\r
\r
+#if 0\r
+ if(isalpha((char)wParam)) {\r
+ /* capitals of any ind are intercepted and distinguished by left and right shift */\r
+ int mine = GetKeyState(VK_RSHIFT) < 0;\r
+ if(mine || GetKeyState(VK_LSHIFT) < 0) {\r
+#endif\r
+\r
#define JAWS_ALT_INTERCEPT \\r
- if(isalpha((char)wParam)) {\\r
- /* capitals of any ind are intercepted and distinguished by left and right shift */\\r
- int mine = GetKeyState(VK_RSHIFT) < 0;\\r
- if(mine || GetKeyState(VK_LSHIFT) < 0) {\\r
-\\r
- if(gameMode == IcsPlayingWhite || gameMode == MachinePlaysBlack) mine = !mine;\\r
-\\r
- if(ToLower((char)wParam) == 'x') {\\r
- SayPieces(mine ? WhitePlay : BlackPlay);\\r
- break;\\r
- } else\\r
- if(CharToPiece((char)wParam) != EmptySquare) {\\r
- SayPieces(CharToPiece(mine ? ToUpper((char)wParam) : ToLower((char)wParam)));\\r
- break;\\r
- }\\r
- }\\r
+ if(suppressOneKey) {\\r
+ suppressOneKey = 0;\\r
+ if(GetKeyState(VK_MENU) < 0 && GetKeyState(VK_CONTROL) < 0) break;\\r
}\\r
if ((char)wParam == 022 && gameMode == EditPosition) { /* <Ctl R>. Pop up piece menu */\\r
POINT pt; int x, y;\\r
#define JAWS_KB_NAVIGATION \\r
\\r
case WM_KEYDOWN:\\r
+\\r
+ if(GetKeyState(VK_MENU) < 0 && GetKeyState(VK_CONTROL) < 0) {\\r
+ /* Control + Alt + letter used for speaking piece positions */\\r
+ static int lastTime; static char lastChar;\\r
+ int mine = 0, time = GetTickCount(); char c;\\r
+\\r
+ if((char)wParam == lastChar && time-lastTime < 250) mine = 1;\\r
+ lastChar = wParam; lastTime = time;\\r
+ c = wParam;\\r
+\\r
+ if(gameMode == IcsPlayingWhite || gameMode == MachinePlaysBlack) mine = !mine;\\r
+\\r
+ if(ToLower(c) == 'x') {\\r
+ SayPieces(mine ? WhitePlay : BlackPlay);\\r
+ suppressOneKey = 1;\\r
+ break;\\r
+ } else\\r
+ if(CharToPiece(c) != EmptySquare) {\\r
+ SayPieces(CharToPiece(mine ? ToUpper(c) : ToLower(c)));\\r
+ suppressOneKey = 1;\\r
+ break;\\r
+ }\\r
+ }\\r
+\\r
switch (wParam) {\\r
case VK_LEFT:\\r
case VK_RIGHT:\\r