all repos — openbox @ cb49f853c9b62c4403eb562d39f52c51da292c4f

openbox fork - make it a bit more like ryudo

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.
Dana Jansens danakj@orodu.net
commit

cb49f853c9b62c4403eb562d39f52c51da292c4f

parent

a4f023cf3a085d414a03e2d074e6eaa5258e4391

1 files changed, 13 insertions(+), 7 deletions(-)

jump to
M openbox/event.copenbox/event.c

@@ -223,32 +223,38 @@ }

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) \