Blame


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