Created attachment 134505 [details]
Xwayland doesn't correctly convert non-argb cursor, resulting in a distorted cursor image. Attached test case demonstrates the effect using the browser.
The bug is this line in xwayland-cursor.c:
> stride = (bits->width / 8 + 3) & ~3;
What happens if bits->width is less than 8? :)
Other parts seem to use BitmapBytePad(), so I would suggest that Xwayland is converted to do the same.
PS. no one seems to have added a Xwayland component, so I stuck this in "other" for now
(In reply to Pierre Ossman from comment #1)
> PS. no one seems to have added a Xwayland component, so I stuck this in
> "other" for now
Moving to Wayland/Xwayland
I see. I figured it would be under xorg since it lives in the xserver tree. :)
Created attachment 134508 [details] [review]
[PATCH xserver] xwayland: Fix non-argb cursor conversion
That seems to fix the issue, will send that to the ML.
PS: great test case!
commit 97ac59b1ed3624f7c04e54dd3e3dadfa46a8f170 (origin/master, origin/HEAD, master)
Author: Olivier Fourdan <firstname.lastname@example.org>
Date: Wed Sep 27 18:01:01 2017 +0200
xwayland: Fix non-argb cursor conversion