diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-08 07:25:03 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-08 07:26:54 +0100 |
commit | 6f69188cb2959abfb2fcd3f81cd4146aa3876bb5 (patch) | |
tree | 4b5c985ca9849fe9335b47c46998bc2383f3063b | |
parent | fab976cef80aad2c573cfc6febeec5ec8e3bab06 (diff) |
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 <jan.steffens@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82273
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_display.c | 5 |
1 files changed, 4 insertions, 1 deletions
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) { |