diff options
| author | Simon Tatham <anakin@pobox.com> | 2004-04-28 17:21:57 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2004-04-28 17:21:57 +0000 |
| commit | 56a59e2e51d0cbe93ce16253e52a6421b0168c06 (patch) | |
| tree | 863204a212690fba3d260e4580b063f4052732dd /gtk.c | |
| parent | d37b52bde5a358b1ee839c263bdc0308d1047a1a (diff) | |
| download | puzzles-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.c | 20 |
1 files changed, 16 insertions, 4 deletions
@@ -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; |