From: "Jasper St. Pierre" <[email protected]>

If we do this, then we could get a nonsensically giant or even
overflowing delta timestamp, which is bad.
---
 Xi/xibarriers.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Xi/xibarriers.c b/Xi/xibarriers.c
index a225cbc..9cc8364 100644
--- a/Xi/xibarriers.c
+++ b/Xi/xibarriers.c
@@ -466,7 +466,11 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen,
         ev.event_id = pbd->barrier_event_id;
         ev.barrierid = c->id;
 
-        ev.dt = ms - pbd->last_timestamp;
+        if (pbd->last_timestamp > 0)
+            ev.dt = ms - pbd->last_timestamp;
+        else
+            ev.dt = 0;
+
         ev.window = c->window;
         pbd->last_timestamp = ms;
 
@@ -502,7 +506,7 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen,
 
         ev.dt = ms - pbd->last_timestamp;
         ev.window = c->window;
-        pbd->last_timestamp = ms;
+        pbd->last_timestamp = 0;
 
         /* root x/y is filled in later */
 
-- 
1.8.1.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to