26 |
#include <string.h> |
#include <string.h> |
27 |
#include "keyboard.h" |
#include "keyboard.h" |
28 |
|
|
29 |
void parseKeyString(Display * dpy, MyKey * key, char *str) |
void |
30 |
|
parseKeyString (Display * dpy, MyKey * key, char *str) |
31 |
{ |
{ |
32 |
char *k; |
char *k; |
33 |
|
|
34 |
#ifdef DEBUG |
#ifdef DEBUG |
35 |
printf("entering parseKeyString\n"); |
printf ("entering parseKeyString\n"); |
36 |
printf("key string=%s\n", str); |
printf ("key string=%s\n", str); |
37 |
#endif |
#endif |
38 |
|
|
39 |
key->keycode = 0; |
key->keycode = 0; |
40 |
key->modifier = 0; |
key->modifier = 0; |
41 |
|
|
42 |
if(!strcmp(str, "none")) |
if (!strcmp (str, "none")) |
43 |
return; |
return; |
44 |
|
|
45 |
k = strrchr(str, '+'); |
k = strrchr (str, '+'); |
46 |
if(k) |
if (k) |
47 |
{ |
{ |
48 |
key->keycode = XKeysymToKeycode(dpy, XStringToKeysym(k + 1)); |
key->keycode = XKeysymToKeycode (dpy, XStringToKeysym (k + 1)); |
49 |
if(strstr(str, "Shift")) |
if (strstr (str, "Shift")) |
50 |
key->modifier = key->modifier | ShiftMask; |
key->modifier = key->modifier | ShiftMask; |
51 |
if(strstr(str, "Control")) |
if (strstr (str, "Control")) |
52 |
key->modifier = key->modifier | ControlMask; |
key->modifier = key->modifier | ControlMask; |
53 |
if(strstr(str, "Mod1")) |
if (strstr (str, "Mod1")) |
54 |
key->modifier = key->modifier | Mod1Mask; |
key->modifier = key->modifier | Mod1Mask; |
55 |
if(strstr(str, "Mod2")) |
if (strstr (str, "Mod2")) |
56 |
key->modifier = key->modifier | Mod2Mask; |
key->modifier = key->modifier | Mod2Mask; |
57 |
if(strstr(str, "Mod3")) |
if (strstr (str, "Mod3")) |
58 |
key->modifier = key->modifier | Mod3Mask; |
key->modifier = key->modifier | Mod3Mask; |
59 |
if(strstr(str, "Mod4")) |
if (strstr (str, "Mod4")) |
60 |
key->modifier = key->modifier | Mod4Mask; |
key->modifier = key->modifier | Mod4Mask; |
61 |
if(strstr(str, "Mod5")) |
if (strstr (str, "Mod5")) |
62 |
key->modifier = key->modifier | Mod5Mask; |
key->modifier = key->modifier | Mod5Mask; |
63 |
} |
} |
64 |
} |
} |
65 |
|
|
66 |
void grabKey(Display * dpy, MyKey * key, Window w) |
void |
67 |
|
grabKey (Display * dpy, MyKey * key, Window w) |
68 |
{ |
{ |
69 |
#ifdef DEBUG |
#ifdef DEBUG |
70 |
printf("entering grabKey\n"); |
printf ("entering grabKey\n"); |
71 |
#endif |
#endif |
72 |
|
|
73 |
if(key->keycode) |
if (key->keycode) |
74 |
{ |
{ |
75 |
XGrabKey(dpy, key->keycode, key->modifier, w, False, GrabModeAsync, |
XGrabKey (dpy, key->keycode, key->modifier, w, False, GrabModeAsync, |
76 |
GrabModeAsync); |
GrabModeAsync); |
77 |
XGrabKey(dpy, key->keycode, key->modifier | LockMask, w, False, |
XGrabKey (dpy, key->keycode, key->modifier | LockMask, w, False, |
78 |
GrabModeAsync, GrabModeAsync); |
GrabModeAsync, GrabModeAsync); |
79 |
} |
} |
80 |
} |
} |
81 |
|
|
82 |
void ungrabKeys(Display * dpy, Window w) |
void |
83 |
|
ungrabKeys (Display * dpy, Window w) |
84 |
{ |
{ |
85 |
#ifdef DEBUG |
#ifdef DEBUG |
86 |
printf("entering ungrabKeys\n"); |
printf ("entering ungrabKeys\n"); |
87 |
#endif |
#endif |
88 |
|
|
89 |
XUngrabKey(dpy, AnyKey, AnyModifier, w); |
XUngrabKey (dpy, AnyKey, AnyModifier, w); |
90 |
} |
} |