desktop-shell: Fix black edges on scaled desktop pattern

Filter sampling outside the source image can leak black into the edges
of the
desktop image. This is most easily seen by scaling the default tiled image
with this weston.ini:

	# no background-image and no background-color
	background-type=scale-crop
dev
Bill Spitzak 11 years ago committed by Kristian Høgsberg
parent 6d43f045e3
commit 79b7cb3ee3
  1. 2
      clients/desktop-shell.c

@ -724,6 +724,7 @@ background_draw(struct widget *widget, void *data)
case BACKGROUND_SCALE: case BACKGROUND_SCALE:
cairo_matrix_init_scale(&matrix, sx, sy); cairo_matrix_init_scale(&matrix, sx, sy);
cairo_pattern_set_matrix(pattern, &matrix); cairo_pattern_set_matrix(pattern, &matrix);
cairo_pattern_set_extend(pattern, CAIRO_EXTEND_PAD);
break; break;
case BACKGROUND_SCALE_CROP: case BACKGROUND_SCALE_CROP:
s = (sx < sy) ? sx : sy; s = (sx < sy) ? sx : sy;
@ -733,6 +734,7 @@ background_draw(struct widget *widget, void *data)
cairo_matrix_init_translate(&matrix, tx, ty); cairo_matrix_init_translate(&matrix, tx, ty);
cairo_matrix_scale(&matrix, s, s); cairo_matrix_scale(&matrix, s, s);
cairo_pattern_set_matrix(pattern, &matrix); cairo_pattern_set_matrix(pattern, &matrix);
cairo_pattern_set_extend(pattern, CAIRO_EXTEND_PAD);
break; break;
case BACKGROUND_TILE: case BACKGROUND_TILE:
cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT); cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);

Loading…
Cancel
Save