handle properly XKeysymToKeycode's return

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

27
dunst.c
View File

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