diff -Naur xfdesktop-4.4.2/settings/appearance-settings.c xfdesktop-4.4.2.tpg/settings/appearance-settings.c --- xfdesktop-4.4.2/settings/appearance-settings.c 2007-11-17 19:31:41.000000000 +0000 +++ xfdesktop-4.4.2.tpg/settings/appearance-settings.c 2008-06-28 14:07:59.000000000 +0000 @@ -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); diff -Naur xfdesktop-4.4.2/src/xfce-backdrop.c xfdesktop-4.4.2.tpg/src/xfce-backdrop.c --- xfdesktop-4.4.2/src/xfce-backdrop.c 2007-11-17 19:31:41.000000000 +0000 +++ xfdesktop-4.4.2.tpg/src/xfce-backdrop.c 2008-06-28 14:07:59.000000000 +0000 @@ -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); } diff -Naur xfdesktop-4.4.2/src/xfce-backdrop.h xfdesktop-4.4.2.tpg/src/xfce-backdrop.h --- xfdesktop-4.4.2/src/xfce-backdrop.h 2007-11-17 19:31:41.000000000 +0000 +++ xfdesktop-4.4.2.tpg/src/xfce-backdrop.h 2008-06-28 14:07:59.000000000 +0000 @@ -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