mikew@wyse1.wyse.com (Mike Wexler) (03/08/88)
The pain program in ./contrib/paint uses keycodes to determine
which keys are pressed. The is not a portable technique. I
have modified it to use XLookupString which should be somewhat
more portable. Anyway here are the context diffs:
*** main.c.orig Mon Mar 7 15:18:21 1988
--- main.c Mon Mar 7 15:19:56 1988
***************
*** 37,44 ****
Display *dpy;
- int shiftbit = FALSE;
-
HandleKey(event)
XEvent *event;
{
--- 37,42 ----
***************
*** 48,62 ****
static int arg = 0;
static int argval = 1;
static int sgn = 0;
! code = event->xkey.keycode;
! if (code == 174) {
! shiftbit = TRUE;
! return;
! }
! c = GetCharFromCode(code);
! if (c >= 'a' && c <= 'z' && shiftbit)
! c += 'A' - 'a';
switch (c) {
case 'C':
XClearWindow(dpy, window);
--- 46,57 ----
static int arg = 0;
static int argval = 1;
static int sgn = 0;
+ char temp[10];
+ KeySym tempsym;
+ XComposeStatus status;
! XLookupString(event,temp,sizeof(temp),&tempsym,&status);
! c=temp[0];
switch (c) {
case 'C':
XClearWindow(dpy, window);
***************
*** 135,147 ****
sgn = 1;
}
- HandleKeyUp(event)
- XEvent *event;
- {
- if (event->xkey.keycode == 174)
- shiftbit = FALSE;
- }
-
DisplayMode()
{
char str[500];
--- 130,135 ----
***************
*** 336,342 ****
&attributes);
XChangeProperty(dpy, window, XA_WM_NAME, XA_STRING, 8,
PropModeReplace, "Paint", 5);
! MyXSelectInput(dpy, window, KeyPressMask | KeyReleaseMask | ButtonPressMask
| ButtonReleaseMask | ButtonMotionMask | ExposureMask);
XMapWindow(dpy, window);
gcvalues.foreground = foreground;
--- 324,330 ----
&attributes);
XChangeProperty(dpy, window, XA_WM_NAME, XA_STRING, 8,
PropModeReplace, "Paint", 5);
! MyXSelectInput(dpy, window, KeyPressMask | ButtonPressMask
| ButtonReleaseMask | ButtonMotionMask | ExposureMask);
XMapWindow(dpy, window);
gcvalues.foreground = foreground;
***************
*** 356,364 ****
switch(event.type) {
case KeyPress:
HandleKey(&event);
- break;
- case KeyRelease:
- HandleKeyUp(&event);
break;
case ButtonPress:
HandleButtonDown(&event);
--- 344,349 ----