Blob


1 /* Copyright (c) 2005 Russ Cox, see README for licence details */
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <X11/X.h>
5 #include <X11/Xos.h>
6 #include <X11/Xlib.h>
7 #include <X11/Xutil.h>
8 #include <X11/Xatom.h>
9 #include <X11/extensions/shape.h>
10 #include "dat.h"
11 #include "fns.h"
12 #include "patchlevel.h"
14 enum
15 {
16 GrabAltTab,
17 GrabAltAny
18 };
20 static int tabcode = 0x17;
21 /*static int altcode = 0x40; */
22 /*static int pgupcode = 0x63; */
23 /*static int pgdowncode = 0x69; */
25 static void alttab(int shift);
27 void
28 keysetup(void)
29 {
30 int i;
32 for(i=0; i<num_screens; i++){
33 XGrabKey(dpy, tabcode, Mod1Mask, screens[i].root, 0, GrabModeSync, GrabModeAsync);
34 XGrabKey(dpy, tabcode, Mod1Mask|ShiftMask, screens[i].root, 0, GrabModeSync, GrabModeAsync);
35 /* XGrabKey(dpy, pgupcode, Mod1Mask, screens[i].root, 0, GrabModeSync, GrabModeAsync); */
36 /* XGrabKey(dpy, pgdowncode, Mod1Mask, screens[i].root, 0, GrabModeSync, GrabModeAsync); */
37 /* XGrabKey(dpy, altcode, 0, screens[i].root, 0, GrabModeSync, GrabModeAsync); */
38 }
39 }
41 void
42 keypress(XKeyEvent *e)
43 {
44 /*
45 * process key press here
46 */
47 if(0)
48 if(e->keycode == tabcode)
49 alttab(e->state&ShiftMask);
50 XAllowEvents(dpy, SyncKeyboard, e->time);
51 }
53 void
54 keyrelease(XKeyEvent *e)
55 {
56 XAllowEvents(dpy, SyncKeyboard, e->time);
57 }
59 static void
60 alttab(int shift)
61 {
62 shuffle(shift);
63 /* fprintf(stderr, "%sTab\n", shift ? "Back" : ""); */
64 }