From 7ae527002bee2905096487ddf74386e0159051b2 Mon Sep 17 00:00:00 2001 From: Sean Pringle Date: Sat, 28 Mar 2015 17:10:08 +1000 Subject: [PATCH] don't warp pointer on client message --- event.c | 11 ++++++----- window.c | 2 +- xoat.c | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/event.c b/event.c index b9fcdde..4608ff7 100644 --- a/event.c +++ b/event.c @@ -126,7 +126,8 @@ void unmap_notify(XEvent *e) void key_press(XEvent *ev) { - XKeyEvent *e = &ev->xkey; latest = e->time; + XKeyEvent *e = &ev->xkey; + latest_action = e->time; KeySym key = XkbKeycodeToKeysym(display, e->keycode, 0, 0); unsigned int state = e->state & ~(LockMask|NumlockMask); while (XCheckTypedEvent(display, KeyPress, ev)); @@ -141,7 +142,7 @@ void key_press(XEvent *ev) if (rc == -1) menu_select(); - + return; } @@ -163,7 +164,8 @@ void key_press(XEvent *ev) void button_press(XEvent *ev) { int i, j; Monitor *m; - XButtonEvent *e = &ev->xbutton; latest = e->time; + XButtonEvent *e = &ev->xbutton; + latest_action = e->time; Client *c = window_build_client(e->subwindow); if (c && c->manage) client_activate(c); @@ -173,7 +175,7 @@ void button_press(XEvent *ev) if (m->bars[i] && m->bars[j]->window == e->subwindow) spot_focus_top_window(j, i, None); client_free(c); - XAllowEvents(display, ReplayPointer, CurrentTime); + XAllowEvents(display, ReplayPointer, latest_action); } void client_message(XEvent *ev) @@ -195,7 +197,6 @@ void client_message(XEvent *ev) if (e->message_type == atoms[_NET_ACTIVE_WINDOW]) { client_activate(c); - spot_warp_pointer(c->spot, c->monitor); } else if (e->message_type == atoms[_NET_CLOSE_WINDOW]) diff --git a/window.c b/window.c index ede5920..863fa84 100644 --- a/window.c +++ b/window.c @@ -92,7 +92,7 @@ int window_send_clientmessage(Window target, Window subject, Atom atom, unsigned e.xclient.message_type = atom; e.xclient.window = subject; e.xclient.data.l[0] = protocol; - e.xclient.data.l[1] = latest; + e.xclient.data.l[1] = latest_action; e.xclient.send_event = True; e.xclient.format = 32; int r = XSendEvent(display, target, False, mask, &e) ?1:0; diff --git a/xoat.c b/xoat.c index e15a3dd..3ef8da5 100644 --- a/xoat.c +++ b/xoat.c @@ -189,7 +189,7 @@ void action_menu(void*, int, Client*); #define for_monitors(i, m)\ for ((i) = 0; (i) < nmonitors && (m = &monitors[(i)]); (i)++) -Time latest; +Time latest_action; char *self; unsigned int NumlockMask; Monitor monitors[MONITORS];