handle properly XKeysymToKeycode's return

This commit is contained in:
oblique 2012-07-21 05:09:16 +03:00
parent a84e558d82
commit cf1d868666

11
dunst.c
View File

@ -899,11 +899,13 @@ void hide_win()
if (key != NoSymbol) { if (key != NoSymbol) {
code = XKeysymToKeycode(dc->dpy, key); code = XKeysymToKeycode(dc->dpy, key);
if (code != NoSymbol)
XUngrabKey(dc->dpy, code, mask, root); XUngrabKey(dc->dpy, code, mask, root);
} }
if (all_key != NoSymbol) { if (all_key != NoSymbol) {
code = XKeysymToKeycode(dc->dpy, all_key); code = XKeysymToKeycode(dc->dpy, all_key);
if (code != NoSymbol)
XUngrabKey(dc->dpy, code, mask, root); XUngrabKey(dc->dpy, code, mask, root);
} }
@ -978,6 +980,9 @@ void setup(void)
/* grab keys */ /* grab keys */
if (history_key != NoSymbol) { if (history_key != NoSymbol) {
code = XKeysymToKeycode(dc->dpy, history_key); code = XKeysymToKeycode(dc->dpy, history_key);
if (code == NoSymbol)
fprintf(stderr, "no keycode for keysym '%s'\n", history_key_string);
else
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
GrabModeAsync); GrabModeAsync);
} }
@ -996,12 +1001,18 @@ void map_win(void)
root = RootWindow(dc->dpy, DefaultScreen(dc->dpy)); root = RootWindow(dc->dpy, DefaultScreen(dc->dpy));
if (key != NoSymbol) { if (key != NoSymbol) {
code = XKeysymToKeycode(dc->dpy, key); code = XKeysymToKeycode(dc->dpy, key);
if (code == NoSymbol)
fprintf(stderr, "no keycode for keysym '%s'\n", key_string);
else
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
GrabModeAsync); GrabModeAsync);
} }
if (all_key != NoSymbol) { if (all_key != NoSymbol) {
code = XKeysymToKeycode(dc->dpy, all_key); code = XKeysymToKeycode(dc->dpy, all_key);
if (code == NoSymbol)
fprintf(stderr, "no keycode for keysym '%s'\n", all_key_string);
else
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
GrabModeAsync); GrabModeAsync);
} }