Blob Blame History Raw
From a41ae88c095a56a92f25d3297a2272868da23bc0 Mon Sep 17 00:00:00 2001
From: Jeff Smith <whydoubt@gmail.com>
Date: Fri, 20 Jul 2018 00:41:43 -0500
Subject: [PATCH 10/75] backends/x11: Improve grab-device clock updates

meta_backend_x11_grab_device is performing X server clock comparison
using the MAX macro, which comes down to a simple greater-than.

Use XSERVER_TIME_IS_BEFORE, which is a better macro for X server
clock comparisons, as it accounts for 32-bit wrap-around.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/174

(cherry picked from commit 1bfa20929b36d06cc23667d1122175149615b56d)
---
 src/backends/x11/meta-backend-x11.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
index 2b131d2d0..ce8b58cff 100644
--- a/src/backends/x11/meta-backend-x11.c
+++ b/src/backends/x11/meta-backend-x11.c
@@ -547,8 +547,9 @@ meta_backend_x11_grab_device (MetaBackend *backend,
   XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
   int ret;
 
-  if (timestamp != CurrentTime)
-    timestamp = MAX (timestamp, priv->latest_evtime);
+  if (timestamp != CurrentTime &&
+      XSERVER_TIME_IS_BEFORE (timestamp, priv->latest_evtime))
+    timestamp = priv->latest_evtime;
 
   XISetMask (mask.mask, XI_ButtonPress);
   XISetMask (mask.mask, XI_ButtonRelease);
-- 
2.21.0