From dd4ab8b572956f9457616869d6e383c8ed964c73 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 5 Mar 2013 10:14:29 +1000 Subject: [PATCH] Xi: force dtime to 0 on the first BarrierHit dtime to the previous event is 0 on the first BarrierHit event. Signed-off-by: Peter Hutterer Reviewed-by: Jasper St. Pierre Signed-off-by: Keith Packard --- Xi/xibarriers.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Xi/xibarriers.c b/Xi/xibarriers.c index a225cbc25..fccab8615 100644 --- a/Xi/xibarriers.c +++ b/Xi/xibarriers.c @@ -435,6 +435,7 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen, dir = barrier_get_direction(current_x, current_y, x, y); while (dir != 0) { + int new_sequence; struct PointerBarrierDevice *pbd; c = barrier_find_nearest(cs, master, dir, current_x, current_y, x, y); @@ -444,6 +445,8 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen, nearest = &c->barrier; pbd = GetBarrierDevice(c, master->id); + new_sequence = !pbd->hit; + pbd->seen = TRUE; pbd->hit = TRUE; @@ -466,7 +469,7 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen, ev.event_id = pbd->barrier_event_id; ev.barrierid = c->id; - ev.dt = ms - pbd->last_timestamp; + ev.dt = new_sequence ? 0 : ms - pbd->last_timestamp; ev.window = c->window; pbd->last_timestamp = ms;