65 lines
1.3 KiB
C
65 lines
1.3 KiB
C
/* Copyright (c) 2005 Russ Cox, see README for licence details */
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <X11/X.h>
|
|
#include <X11/Xos.h>
|
|
#include <X11/Xlib.h>
|
|
#include <X11/Xutil.h>
|
|
#include <X11/Xatom.h>
|
|
#include <X11/extensions/shape.h>
|
|
#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;
|
|
|
|
for(i=0; i<num_screens; i++){
|
|
XGrabKey(dpy, tabcode, Mod1Mask, screens[i].root, 0, GrabModeSync, GrabModeAsync);
|
|
XGrabKey(dpy, tabcode, Mod1Mask|ShiftMask, screens[i].root, 0, GrabModeSync, GrabModeAsync);
|
|
// XGrabKey(dpy, pgupcode, Mod1Mask, screens[i].root, 0, GrabModeSync, GrabModeAsync);
|
|
// XGrabKey(dpy, pgdowncode, Mod1Mask, screens[i].root, 0, GrabModeSync, GrabModeAsync);
|
|
// XGrabKey(dpy, altcode, 0, screens[i].root, 0, GrabModeSync, GrabModeAsync);
|
|
}
|
|
}
|
|
|
|
void
|
|
keypress(XKeyEvent *e)
|
|
{
|
|
/*
|
|
* process key press here
|
|
*/
|
|
if(0)
|
|
if(e->keycode == tabcode)
|
|
alttab(e->state&ShiftMask);
|
|
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" : "");
|
|
}
|
|
|