File U_Erase-cursor-image-when-changing-rotation.patch of Package xf86-video-intel.458
From: Egbert Eich <eich@suse.de>
Date: Fri Aug 29 18:25:55 2014 +0200
Subject: [PATCH]Erase cursor image when changing rotation
Patch-mainline: to be upstreamed
References: bnc#893752
Signed-off-by: Egbert Eich <eich@suse.com>
The rotated cursor image will be at a different location
in the 64x64 bit block and won't overlap with the unrotated
image. Therefore it will not be overwritten if the real image
is smaller.
Signed-off-by: Egbert Eich <eich@suse.de>
---
src/sna/sna_display.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 2d5477d..8472b76 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -4273,7 +4273,8 @@ static struct sna_cursor *__sna_get_cursor(struct sna *sna, xf86CrtcPtr crtc)
image = sna->cursor.scratch;
cursor->last_width = cursor->last_height = size;
}
- if (width < cursor->last_width || height < cursor->last_height)
+ if (width < cursor->last_width || height < cursor->last_height ||
+ size > cursor->size || rotation != cursor->rotation)
memset(image, 0, 4*size*size);
if (rotation == RR_Rotate_0) {
if (argb == NULL) {