From 4a74ce33877320c842c3e82151d2cb8ca4845ed7 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 30 Nov 2020 19:02:28 +0100 Subject: backends/x11: Iterate button modifiers all the way This is misuse of XIMaskLen (on a mask len! not the right mask!). Have this iterate all possible values stored in the button state. Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1559 --- src/backends/x11/meta-seat-x11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c index e320a1e4c..a1d1cc5e1 100644 --- a/src/backends/x11/meta-seat-x11.c +++ b/src/backends/x11/meta-seat-x11.c @@ -1506,7 +1506,7 @@ translate_state (XIButtonState *button_state, if (button_state) { - for (i = 1; i < XIMaskLen (button_state->mask_len); i++) + for (i = 1; i <= button_state->mask_len * 8; i++) { if (!XIMaskIsSet (button_state->mask, i)) continue; -- cgit v1.2.1