ICCCM explicitly states that server time (CurrentTime) should *not* be

used for focus events, but rather the timestamp of the generated event.
Track the last event timestamp and send it down for a WM_TAKE_FOCUS
ClientMessage.  I suspect we should do this for clients that don't
announce this Atom as well, though the raciness gets us into a bind.

Solves focus order issue since WM_TAKE_FOCUS; fix verified by sthen@

ok sthen@
This commit is contained in:
okan
2013-12-12 20:15:07 +00:00
parent e767ac9c65
commit b276a2ef00
4 changed files with 12 additions and 5 deletions

View File

@@ -212,6 +212,8 @@ xev_handle_enternotify(XEvent *ee)
XCrossingEvent *e = &ee->xcrossing;
struct client_ctx *cc;
Last_Event_Time = e->time;
if ((cc = client_find(e->window)) != NULL)
client_setactive(cc);
}