commit 5be2b5ed436ec2b39fc31f4186aea7824b7b0deb
parent 339b809b22477bcf97a11e9faa29400fcd284cc4
Author: seninha <lucas@seninha.org>
Date: Sun, 11 Sep 2022 22:10:33 -0300
grab pointer in alttab to not get pointer events
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/xevents.c b/xevents.c
@@ -606,7 +606,10 @@ alttab(XEvent *e)
return;
ev = *e;
raised = 0;
- XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime);
+ if (XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) != GrabSuccess)
+ goto done;
+ if (XGrabPointer(dpy, root, False, 0, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess)
+ goto done;
do {
switch (ev.type) {
case Expose:
@@ -630,10 +633,13 @@ alttab(XEvent *e)
} while (!XMaskEvent(dpy, ALTTABMASK, &ev));
done:
XUngrabKeyboard(dpy, CurrentTime);
+ XUngrabPointer(dpy, CurrentTime);
if (c == NULL)
return;
- containerbacktoplace(c, raised);
- tabfocus(c->selcol->selrow->seltab, 0);
+ if (raised) {
+ containerbacktoplace(c, raised);
+ tabfocus(c->selcol->selrow->seltab, 0);
+ }
}
/* detach tab from window with mouse */