aboutsummaryrefslogtreecommitdiff
path: root/gtk.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2004-04-28 17:21:57 +0000
committerSimon Tatham <anakin@pobox.com>2004-04-28 17:21:57 +0000
commit56a59e2e51d0cbe93ce16253e52a6421b0168c06 (patch)
tree863204a212690fba3d260e4580b063f4052732dd /gtk.c
parentd37b52bde5a358b1ee839c263bdc0308d1047a1a (diff)
downloadpuzzles-56a59e2e51d0cbe93ce16253e52a6421b0168c06.zip
puzzles-56a59e2e51d0cbe93ce16253e52a6421b0168c06.tar.gz
puzzles-56a59e2e51d0cbe93ce16253e52a6421b0168c06.tar.bz2
puzzles-56a59e2e51d0cbe93ce16253e52a6421b0168c06.tar.xz
Introduce diagonal movement keys on the numeric keypad, and use them
as an alternative control method in Cube. (This was a bit of hassle in the Windows front end; I also introduced a debugging framework and made TranslateMessage conditional.) [originally from svn r4162]
Diffstat (limited to 'gtk.c')
-rw-r--r--gtk.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/gtk.c b/gtk.c
index 23ca66d..b69e95d 100644
--- a/gtk.c
+++ b/gtk.c
@@ -139,14 +139,26 @@ static gint key_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
if (event->string[0] && !event->string[1])
keyval = (unsigned char)event->string[0];
- else if (event->keyval == GDK_Up || event->keyval == GDK_KP_Up)
+ else if (event->keyval == GDK_Up || event->keyval == GDK_KP_Up ||
+ event->keyval == GDK_KP_8)
keyval = CURSOR_UP;
- else if (event->keyval == GDK_Down || event->keyval == GDK_KP_Down)
+ else if (event->keyval == GDK_Down || event->keyval == GDK_KP_Down ||
+ event->keyval == GDK_KP_2)
keyval = CURSOR_DOWN;
- else if (event->keyval == GDK_Left || event->keyval == GDK_KP_Left)
+ else if (event->keyval == GDK_Left || event->keyval == GDK_KP_Left ||
+ event->keyval == GDK_KP_4)
keyval = CURSOR_LEFT;
- else if (event->keyval == GDK_Right || event->keyval == GDK_KP_Right)
+ else if (event->keyval == GDK_Right || event->keyval == GDK_KP_Right ||
+ event->keyval == GDK_KP_6)
keyval = CURSOR_RIGHT;
+ else if (event->keyval == GDK_KP_Home || event->keyval == GDK_KP_7)
+ keyval = CURSOR_UP_LEFT;
+ else if (event->keyval == GDK_KP_End || event->keyval == GDK_KP_1)
+ keyval = CURSOR_DOWN_LEFT;
+ else if (event->keyval == GDK_KP_Page_Up || event->keyval == GDK_KP_9)
+ keyval = CURSOR_UP_RIGHT;
+ else if (event->keyval == GDK_KP_Page_Down || event->keyval == GDK_KP_3)
+ keyval = CURSOR_DOWN_RIGHT;
else
keyval = -1;