From 6f69188cb2959abfb2fcd3f81cd4146aa3876bb5 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 8 Aug 2014 07:25:03 +0100 Subject: [PATCH] sna: Clear old cursors when resizing When changing the stride on a cursor, we have to clear the whole area and not just the rectangle outside of our overwritten area. Reported-by: Jan Alexander Steffens Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82273 Signed-off-by: Chris Wilson --- src/sna/sna_display.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index 116f74be..87defbef 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -4319,7 +4319,10 @@ static struct sna_cursor *__sna_get_cursor(struct sna *sna, xf86CrtcPtr crtc) image = cursor->image; if (image == NULL) image = sna->cursor.scratch; - if (width < cursor->last_width || height < cursor->last_height || rotation != cursor->rotation) + if (size > cursor->size || + width < cursor->last_width || + height < cursor->last_height || + rotation != cursor->rotation) memset(image, 0, 4*size*size); if (rotation == RR_Rotate_0) { if (argb == NULL) {