diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-08-12 04:06:30 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-08-12 04:06:30 +0000 |
| commit | cb49f853c9b62c4403eb562d39f52c51da292c4f (patch) | |
| tree | ce6042185b0078af2b6d4a08b04d342a3f7739a0 | |
| parent | a4f023cf3a085d414a03e2d074e6eaa5258e4391 (diff) | |
keep event_lasttime at the last time an event has come in so far, don't regress when events come out of order. props to shrimpx for this patch.
| -rw-r--r-- | openbox/event.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/openbox/event.c b/openbox/event.c index a0515e2e..b5e15a3c 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -223,32 +223,38 @@ static Window event_get_window(XEvent *e) static void event_set_lasttime(XEvent *e) { + Time t = 0; + /* grab the lasttime and hack up the state */ switch (e->type) { case ButtonPress: case ButtonRelease: - event_lasttime = e->xbutton.time; + t = e->xbutton.time; break; case KeyPress: - event_lasttime = e->xkey.time; + t = e->xkey.time; break; case KeyRelease: - event_lasttime = e->xkey.time; + t = e->xkey.time; break; case MotionNotify: - event_lasttime = e->xmotion.time; + t = e->xmotion.time; break; case PropertyNotify: - event_lasttime = e->xproperty.time; + t = e->xproperty.time; break; case EnterNotify: case LeaveNotify: - event_lasttime = e->xcrossing.time; + t = e->xcrossing.time; break; default: - event_lasttime = CurrentTime; + /* if more event types are anticipated, get their timestamp + explicitly */ break; } + + if (t > event_lasttime) + event_lasttime = t; } #define STRIP_MODS(s) \ |
