--- rox-2.5.orig/ROX-Filer/src/pinboard.c +++ rox-2.5/ROX-Filer/src/pinboard.c @@ -2244,6 +2244,7 @@ { GdkPixbuf *old = pixbuf; int x, y, width, height; + int offset_x, offset_y; float scale; width = gdk_pixbuf_get_width(pixbuf); @@ -2268,14 +2269,27 @@ x = (screen_width - width * scale) / 2; y = (screen_height - height * scale) / 2; - x = MAX(x, 0); - y = MAX(y, 0); + + if (style == BACKDROP_CENTRE) + { + offset_x = x; + offset_y = y; + x = MAX(x, 0); + y = MAX(y, 0); + } + else { + x = MAX(x, 0); + y = MAX(y, 0); + offset_x = x; + offset_y = y; + } + gdk_pixbuf_composite(old, pixbuf, x, y, MIN(screen_width, width * scale), MIN(screen_height, height * scale), - x, y, scale, scale, + offset_x, offset_y, scale, scale, o_pinboard_image_scaling.int_value? GDK_INTERP_BILINEAR: GDK_INTERP_HYPER, 255);