[PATCH v2] Xi: force dtime to 0 on the first BarrierHit
Peter Hutterer
peter.hutterer at who-t.net
Mon Mar 4 16:14:29 PST 2013
dtime to the previous event is 0 on the first BarrierHit event.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
changes to v1:
- check pbd->hit to see if we're the start of a new sequence instead of a
timestamp of 0.
Xi/xibarriers.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Xi/xibarriers.c b/Xi/xibarriers.c
index a225cbc..fccab86 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;
--
1.8.1.4
More information about the xorg-devel
mailing list