/* Copyright (c) 2005 Russ Cox, see README for licence details */ #include #include #include #include #include #include #include #include #include "dat.h" #include "fns.h" #include "patchlevel.h" enum { GrabAltTab, GrabAltAny }; /*static int tabcode = 0x17; */ /*static int altcode = 0x40; */ /*static int pgupcode = 0x63; */ /*static int pgdowncode = 0x69; */ static void alttab(int shift); void keysetup(void) { int i; int tabcode = XKeysymToKeycode(dpy, XK_Tab); int prev = XKeysymToKeycode(dpy, XK_1); int next = XKeysymToKeycode(dpy, XK_2); for(i=0; istate&Mod1Mask) == Mod1Mask){ if(e->keycode == tabcode) alttab(e->state&ShiftMask); else{ if(e->keycode == prev){ if(numvirtuals > 1 && virt > 0) switch_to(virt - 1); } else { if(e->keycode == next){ if(numvirtuals > 1 && virt < numvirtuals - 1) switch_to(virt + 1); } } } } XAllowEvents(dpy, SyncKeyboard, e->time); } void keyrelease(XKeyEvent *e) { XAllowEvents(dpy, SyncKeyboard, e->time); } static void alttab(int shift) { shuffle(shift); /* fprintf(stderr, "%sTab\n", shift ? "Back" : ""); */ }