summaryrefslogtreecommitdiff
path: root/xc/programs/xterm
diff options
context:
space:
mode:
authorgildea <empty>1994-05-14 15:53:34 +0000
committergildea <empty>1994-05-14 15:53:34 +0000
commitc91f413ad7778a29456aaea2fb5e70d21a3319dc (patch)
treeeeaf8867ee2c9903cf43efb0cef6b8191ff7489e /xc/programs/xterm
parentc322889bcfbefc450fdf1d187ab21b9e81e6f6b4 (diff)
recognize keypad keysyms such as KP_Up and KP_Prior. XBUG #6742.
Diffstat (limited to 'xc/programs/xterm')
-rw-r--r--xc/programs/xterm/input.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/xc/programs/xterm/input.c b/xc/programs/xterm/input.c
index 0af04f039..52038eb45 100644
--- a/xc/programs/xterm/input.c
+++ b/xc/programs/xterm/input.c
@@ -1,5 +1,5 @@
/*
- * $XConsortium: input.c,v 1.16 91/05/10 16:57:16 gildea Exp $
+ * $XConsortium: input.c,v 1.17 92/03/20 17:43:06 gildea Exp $
*/
/*
@@ -89,19 +89,15 @@ Input (keyboard, screen, event, eightbit)
reply.a_nparam = 0;
reply.a_inters = 0;
+ if (keysym >= XK_KP_Home && keysym <= XK_KP_Begin) {
+ keysym += XK_Home - XK_KP_Home;
+ }
+
if (IsPFKey(keysym)) {
reply.a_type = SS3;
unparseseq(&reply, pty);
unparseputc((char)(keysym-XK_KP_F1+'P'), pty);
key = TRUE;
- } else if (IsKeypadKey(keysym)) {
- if (keyboard->flags & KYPD_APL) {
- reply.a_type = SS3;
- unparseseq(&reply, pty);
- unparseputc(kypd_apl[keysym-XK_KP_Space], pty);
- } else
- unparseputc(kypd_num[keysym-XK_KP_Space], pty);
- key = TRUE;
} else if (IsCursorKey(keysym) &&
keysym != XK_Prior && keysym != XK_Next) {
if (keyboard->flags & CURSOR_APL) {
@@ -116,7 +112,8 @@ Input (keyboard, screen, event, eightbit)
key = TRUE;
} else if (IsFunctionKey(keysym) || IsMiscFunctionKey(keysym) ||
keysym == XK_Prior || keysym == XK_Next ||
- keysym == DXK_Remove) {
+ keysym == DXK_Remove || keysym == XK_KP_Delete ||
+ keysym == XK_KP_Insert) {
reply.a_type = CSI;
reply.a_nparam = 1;
if (sunFunctionKeys) {
@@ -129,6 +126,14 @@ Input (keyboard, screen, event, eightbit)
if (reply.a_param[0] > 0)
unparseseq(&reply, pty);
key = TRUE;
+ } else if (IsKeypadKey(keysym)) {
+ if (keyboard->flags & KYPD_APL) {
+ reply.a_type = SS3;
+ unparseseq(&reply, pty);
+ unparseputc(kypd_apl[keysym-XK_KP_Space], pty);
+ } else
+ unparseputc(kypd_num[keysym-XK_KP_Space], pty);
+ key = TRUE;
} else if (nbytes > 0) {
if(screen->TekGIN) {
TekEnqMouse(*string++);
@@ -200,7 +205,9 @@ static int funcvalue (keycode)
case XK_Find : return(1);
case XK_Insert: return(2);
+ case XK_KP_Insert: return(2);
case XK_Delete: return(3);
+ case XK_KP_Delete: return(3);
case DXK_Remove: return(3);
case XK_Select: return(4);
case XK_Prior: return(5);
@@ -255,7 +262,9 @@ static int sunfuncvalue (keycode)
case XK_Find : return(1);
case XK_Insert: return(2);
+ case XK_KP_Insert: return(2);
case XK_Delete: return(3);
+ case XK_KP_Delete: return(3);
case DXK_Remove: return(3);
case XK_Select: return(4);
case XK_Prior: return(5);