aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emcc.c41
1 files changed, 30 insertions, 11 deletions
diff --git a/emcc.c b/emcc.c
index 0a4ddae..b6a1f12 100644
--- a/emcc.c
+++ b/emcc.c
@@ -267,20 +267,19 @@ void key(int keycode, int charcode, const char *key, const char *chr,
{
int keyevent = -1;
- if (!strnullcmp(key, "Backspace") || !strnullcmp(key, "Del") ||
- keycode == 8 || keycode == 46)
+ if (!strnullcmp(key, "Backspace") || !strnullcmp(key, "Del"))
keyevent = 127; /* Backspace / Delete */
- else if (!strnullcmp(key, "Enter") || keycode == 13)
+ else if (!strnullcmp(key, "Enter"))
keyevent = 13; /* return */
- else if (!strnullcmp(key, "Left") || keycode == 37)
+ else if (!strnullcmp(key, "Left"))
keyevent = CURSOR_LEFT;
- else if (!strnullcmp(key, "Up") || keycode == 38)
+ else if (!strnullcmp(key, "Up"))
keyevent = CURSOR_UP;
- else if (!strnullcmp(key, "Right") || keycode == 39)
+ else if (!strnullcmp(key, "Right"))
keyevent = CURSOR_RIGHT;
- else if (!strnullcmp(key, "Down") || keycode == 40)
+ else if (!strnullcmp(key, "Down"))
keyevent = CURSOR_DOWN;
- else if (!strnullcmp(key, "End") || keycode == 35)
+ else if (!strnullcmp(key, "End"))
/*
* We interpret Home, End, PgUp and PgDn as numeric keypad
* controls regardless of whether they're the ones on the
@@ -290,11 +289,31 @@ void key(int keycode, int charcode, const char *key, const char *chr,
* puzzles like Cube and Inertia.
*/
keyevent = MOD_NUM_KEYPAD | '1';
- else if (!strnullcmp(key, "PageDown") || keycode==34)
+ else if (!strnullcmp(key, "PageDown"))
keyevent = MOD_NUM_KEYPAD | '3';
- else if (!strnullcmp(key, "Home") || keycode==36)
+ else if (!strnullcmp(key, "Home"))
keyevent = MOD_NUM_KEYPAD | '7';
- else if (!strnullcmp(key, "PageUp") || keycode==33)
+ else if (!strnullcmp(key, "PageUp"))
+ keyevent = MOD_NUM_KEYPAD | '9';
+ else if (keycode == 8 || keycode == 46)
+ keyevent = 127; /* Backspace / Delete */
+ else if (keycode == 13)
+ keyevent = 13; /* return */
+ else if (keycode == 37)
+ keyevent = CURSOR_LEFT;
+ else if (keycode == 38)
+ keyevent = CURSOR_UP;
+ else if (keycode == 39)
+ keyevent = CURSOR_RIGHT;
+ else if (keycode == 40)
+ keyevent = CURSOR_DOWN;
+ else if (keycode == 35)
+ keyevent = MOD_NUM_KEYPAD | '1';
+ else if (keycode == 34)
+ keyevent = MOD_NUM_KEYPAD | '3';
+ else if (keycode == 36)
+ keyevent = MOD_NUM_KEYPAD | '7';
+ else if (keycode == 33)
keyevent = MOD_NUM_KEYPAD | '9';
else if (shift && ctrl && (keycode & 0x1F) == 26)
keyevent = UI_REDO;