aboutsummaryrefslogtreecommitdiff
path: root/gtk.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk.c')
-rw-r--r--gtk.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/gtk.c b/gtk.c
index d721320..199225a 100644
--- a/gtk.c
+++ b/gtk.c
@@ -321,28 +321,36 @@ static gint key_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
if (!fe->pixmap)
return TRUE;
- if (event->string[0] && !event->string[1])
- keyval = (unsigned char)event->string[0];
- else if (event->keyval == GDK_Up || event->keyval == GDK_KP_Up ||
- event->keyval == GDK_KP_8)
+ if (event->keyval == GDK_Up)
keyval = CURSOR_UP;
- else if (event->keyval == GDK_Down || event->keyval == GDK_KP_Down ||
- event->keyval == GDK_KP_2)
+ else if (event->keyval == GDK_KP_Up || event->keyval == GDK_KP_8)
+ keyval = MOD_NUM_KEYPAD | '8';
+ else if (event->keyval == GDK_Down)
keyval = CURSOR_DOWN;
- else if (event->keyval == GDK_Left || event->keyval == GDK_KP_Left ||
- event->keyval == GDK_KP_4)
+ else if (event->keyval == GDK_KP_Down || event->keyval == GDK_KP_2)
+ keyval = MOD_NUM_KEYPAD | '2';
+ else if (event->keyval == GDK_Left)
keyval = CURSOR_LEFT;
- else if (event->keyval == GDK_Right || event->keyval == GDK_KP_Right ||
- event->keyval == GDK_KP_6)
+ else if (event->keyval == GDK_KP_Left || event->keyval == GDK_KP_4)
+ keyval = MOD_NUM_KEYPAD | '4';
+ else if (event->keyval == GDK_Right)
keyval = CURSOR_RIGHT;
+ else if (event->keyval == GDK_KP_Right || event->keyval == GDK_KP_6)
+ keyval = MOD_NUM_KEYPAD | '6';
else if (event->keyval == GDK_KP_Home || event->keyval == GDK_KP_7)
- keyval = CURSOR_UP_LEFT;
+ keyval = MOD_NUM_KEYPAD | '7';
else if (event->keyval == GDK_KP_End || event->keyval == GDK_KP_1)
- keyval = CURSOR_DOWN_LEFT;
+ keyval = MOD_NUM_KEYPAD | '1';
else if (event->keyval == GDK_KP_Page_Up || event->keyval == GDK_KP_9)
- keyval = CURSOR_UP_RIGHT;
+ keyval = MOD_NUM_KEYPAD | '9';
else if (event->keyval == GDK_KP_Page_Down || event->keyval == GDK_KP_3)
- keyval = CURSOR_DOWN_RIGHT;
+ keyval = MOD_NUM_KEYPAD | '3';
+ else if (event->keyval == GDK_KP_Insert || event->keyval == GDK_KP_0)
+ keyval = MOD_NUM_KEYPAD | '0';
+ else if (event->keyval == GDK_KP_Begin || event->keyval == GDK_KP_5)
+ keyval = MOD_NUM_KEYPAD | '5';
+ else if (event->string[0] && !event->string[1])
+ keyval = (unsigned char)event->string[0];
else
keyval = -1;