ungrab keyboard when no notification
This doesn't apply to history key.
This commit is contained in:
parent
bab419f56f
commit
a84e558d82
42
dunst.c
42
dunst.c
@ -893,6 +893,20 @@ void run(void)
|
|||||||
|
|
||||||
void hide_win()
|
void hide_win()
|
||||||
{
|
{
|
||||||
|
KeyCode code;
|
||||||
|
Window root;
|
||||||
|
root = RootWindow(dc->dpy, DefaultScreen(dc->dpy));
|
||||||
|
|
||||||
|
if (key != NoSymbol) {
|
||||||
|
code = XKeysymToKeycode(dc->dpy, key);
|
||||||
|
XUngrabKey(dc->dpy, code, mask, root);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (all_key != NoSymbol) {
|
||||||
|
code = XKeysymToKeycode(dc->dpy, all_key);
|
||||||
|
XUngrabKey(dc->dpy, code, mask, root);
|
||||||
|
}
|
||||||
|
|
||||||
XUngrabButton(dc->dpy, AnyButton, AnyModifier, win);
|
XUngrabButton(dc->dpy, AnyButton, AnyModifier, win);
|
||||||
XUnmapWindow(dc->dpy, win);
|
XUnmapWindow(dc->dpy, win);
|
||||||
XFlush(dc->dpy);
|
XFlush(dc->dpy);
|
||||||
@ -962,14 +976,26 @@ void setup(void)
|
|||||||
CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
|
CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
|
||||||
|
|
||||||
/* grab keys */
|
/* grab keys */
|
||||||
if (key != NoSymbol) {
|
if (history_key != NoSymbol) {
|
||||||
code = XKeysymToKeycode(dc->dpy, key);
|
code = XKeysymToKeycode(dc->dpy, history_key);
|
||||||
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
|
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (history_key != NoSymbol) {
|
}
|
||||||
code = XKeysymToKeycode(dc->dpy, history_key);
|
|
||||||
|
void map_win(void)
|
||||||
|
{
|
||||||
|
/* window is already mapped or there's nothing to show */
|
||||||
|
if (visible || l_is_empty(displayed_notifications)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
KeyCode code;
|
||||||
|
Window root;
|
||||||
|
root = RootWindow(dc->dpy, DefaultScreen(dc->dpy));
|
||||||
|
if (key != NoSymbol) {
|
||||||
|
code = XKeysymToKeycode(dc->dpy, key);
|
||||||
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
|
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
}
|
}
|
||||||
@ -979,14 +1005,6 @@ void setup(void)
|
|||||||
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
|
XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void map_win(void)
|
|
||||||
{
|
|
||||||
/* window is already mapped or there's nothing to show */
|
|
||||||
if (visible || l_is_empty(displayed_notifications)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
update_screen_info();
|
update_screen_info();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user