Index: src/xfce-backdrop.c =================================================================== --- src/xfce-backdrop.c (revision 25343) +++ src/xfce-backdrop.c (working copy) @@ -571,7 +571,7 @@ if(ih <= h / 2 && iw <= w / 2) istyle = XFCE_BACKDROP_IMAGE_TILED; else - istyle = XFCE_BACKDROP_IMAGE_SCALED; + istyle = XFCE_BACKDROP_IMAGE_ZOOMED; } else istyle = backdrop->priv->image_style; @@ -656,6 +656,22 @@ interp, 255); break; + case XFCE_BACKDROP_IMAGE_ZOOMED: + xscale = (gdouble)w / iw; + yscale = (gdouble)h / ih; + if(xscale < yscale) { + xscale = yscale; + xo = (w - (iw * xscale)) * 0.5; + yo = 0; + } else { + yscale = xscale; + xo = 0; + yo = (h - (ih * yscale)) * 0.5; + } + gdk_pixbuf_composite(image, final_image, 0, 0, + w, h, xo, yo, xscale, yscale, interp, 255); + break; + default: g_critical("Invalid image style: %d\n", (gint)istyle); } Index: src/xfce-backdrop.h =================================================================== --- src/xfce-backdrop.h (revision 25343) +++ src/xfce-backdrop.h (working copy) @@ -48,7 +48,8 @@ XFCE_BACKDROP_IMAGE_CENTERED, XFCE_BACKDROP_IMAGE_TILED, XFCE_BACKDROP_IMAGE_STRETCHED, - XFCE_BACKDROP_IMAGE_SCALED + XFCE_BACKDROP_IMAGE_SCALED, + XFCE_BACKDROP_IMAGE_ZOOMED } XfceBackdropImageStyle; typedef enum Index: settings/appearance-settings.c =================================================================== --- settings/appearance-settings.c (revision 25343) +++ settings/appearance-settings.c (working copy) @@ -738,6 +738,7 @@ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Tiled")); gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Stretched")); gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Scaled")); + gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Zoomed")); gtk_combo_box_set_active(GTK_COMBO_BOX(combo), bp->style); gtk_label_set_mnemonic_widget(GTK_LABEL(label), combo); gtk_widget_show(combo);