diff options
author | Jeff Smith <whydoubt@gmail.com> | 2018-01-31 23:27:19 -0600 |
---|---|---|
committer | Jonas Ã…dahl <jadahl@gmail.com> | 2018-02-01 15:34:12 +0800 |
commit | 6be56de14010b175eba76b6dcaa44184a0d7545c (patch) | |
tree | e608ac5559f831981741ab7e11ce3d8fdf3dab17 | |
parent | 206ca43c91da0794ec40b33d0b869681fe3d6a87 (diff) | |
download | mutter-6be56de14010b175eba76b6dcaa44184a0d7545c.tar.gz |
backends/x11: Fix time-comparison bug causing hang
A comparison in translate_device_event() does not account for the fact
that X's clock wraps about every 49.7 days. When triggered, this causes
an unresponsive GUI.
Replace simple less-than comparison with XSERVER_TIME_IS_BEFORE macro,
which accounts for the wrapping of X's clock.
Closes: https://gitlab.gnome.org/GNOME/mutter/issues/12
-rw-r--r-- | src/backends/x11/meta-backend-x11.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c index 233532435..f447f785f 100644 --- a/src/backends/x11/meta-backend-x11.c +++ b/src/backends/x11/meta-backend-x11.c @@ -112,7 +112,7 @@ translate_device_event (MetaBackendX11 *x11, if (!device_event->send_event && device_event->time != CurrentTime) { - if (device_event->time < priv->latest_evtime) + if (XSERVER_TIME_IS_BEFORE (device_event->time, priv->latest_evtime)) { /* Emulated pointer events received after XIRejectTouch is received * on a passive touch grab will contain older timestamps, update those |