xserver: Branch 'xwayland-22.1'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Feb 15 09:16:35 UTC 2022


 hw/xwayland/xwayland-cursor.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

New commits:
commit 278b48acbb5ef0c0a3353d1269e97044edcca0e8
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>
    (cherry picked from commit 6ad6517a796cb4536d368091b647423981ad1217)

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