added key handling

This commit is contained in:
Anselm R. Garbe
2006-07-11 11:50:18 +02:00
parent 8a8b7956b6
commit 366d81e313
5 changed files with 44 additions and 30 deletions

29
wm.c
View File

@ -24,7 +24,6 @@ Client *client = NULL;
char *bartext, tag[256];
int screen, sel_screen;
unsigned int lock_mask, numlock_mask;
/* draw structs */
Brush brush = {0};
@ -143,32 +142,6 @@ startup_error_handler(Display *dpy, XErrorEvent *error)
return -1;
}
static void
init_lock_keys()
{
XModifierKeymap *modmap;
KeyCode numlock;
int i;
static int masks[] = {
ShiftMask, LockMask, ControlMask, Mod1Mask,
Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask
};
numlock_mask = 0;
modmap = XGetModifierMapping(dpy);
numlock = XKeysymToKeycode(dpy, XStringToKeysym("Num_Lock"));
if(modmap && modmap->max_keypermod > 0) {
int max = (sizeof(masks) / sizeof(int)) * modmap->max_keypermod;
for(i = 0; i < max; i++)
if(numlock && (modmap->modifiermap[i] == numlock))
numlock_mask = masks[i / modmap->max_keypermod];
}
XFreeModifiermap(modmap);
lock_mask = 255 & ~(numlock_mask | LockMask);
}
static void
cleanup()
{
@ -243,7 +216,7 @@ main(int argc, char *argv[])
cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
init_lock_keys();
update_keys();
brush.drawable = XCreatePixmap(dpy, root, rect.width, rect.height,
DefaultDepth(dpy, screen));