xserver: Branch 'master'
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Feb 11 09:36:12 UTC 2022
hw/xwayland/xwayland-cursor.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
New commits:
commit 6ad6517a796cb4536d368091b647423981ad1217
Author: Olivier Fourdan <ofourdan at redhat.com>
Date: Fri Feb 11 09:20:46 2022 +0100
xwayland: Fix cursor color
When using colored X11 cursors, the colors would appear wrong, yellow
would show white, green would show as cyan, and blue would show black
whereas red would show fine.
This is because the code expanding the cursor data accounts for green
for both green and blue channels. Funnily this bug has been there from
the beginning.
Fix the issue by correctly account for the color channels.
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1303
Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
Reviewed-by: Simon Ser <contact at emersion.fr>
Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
diff --git a/hw/xwayland/xwayland-cursor.c b/hw/xwayland/xwayland-cursor.c
index 16c13fb64..e3c1aaa50 100644
--- a/hw/xwayland/xwayland-cursor.c
+++ b/hw/xwayland/xwayland-cursor.c
@@ -54,9 +54,11 @@ expand_source_and_mask(CursorPtr cursor, CARD32 *data)
p = data;
fg = ((cursor->foreRed & 0xff00) << 8) |
- (cursor->foreGreen & 0xff00) | (cursor->foreGreen >> 8);
+ (cursor->foreGreen & 0xff00) |
+ (cursor->foreBlue >> 8);
bg = ((cursor->backRed & 0xff00) << 8) |
- (cursor->backGreen & 0xff00) | (cursor->backGreen >> 8);
+ (cursor->backGreen & 0xff00) |
+ (cursor->backBlue >> 8);
stride = BitmapBytePad(bits->width);
for (y = 0; y < bits->height; y++)
for (x = 0; x < bits->width; x++) {
More information about the xorg-commit
mailing list