diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled
index bdd63d2..a24c7b5 100644
Binary files a/schemas/gschemas.compiled and b/schemas/gschemas.compiled differ
diff --git a/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml b/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml
index b01c105..63b3a25 100644
--- a/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml
+++ b/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml
@@ -69,6 +69,12 @@
Save disk space
+
+ True
+ Keep previous wallpapers if they are favourites
+ Sensible default behaivour
+
+
8
Number of days to keep wallpapers
diff --git a/utils.js b/utils.js
index 1ebe159..6f1c43a 100644
--- a/utils.js
+++ b/utils.js
@@ -550,6 +550,7 @@ export function deleteImage(to_delete) {
// add image to persistant list so we can delete it later (in chronological order), delete the oldest image (if user wants this)
export function purgeImages(settings) {
let deletepictures = settings.get_boolean('delete-previous');
+ let keepfavorites = settings.get_boolean('keep-favourites');
if (deletepictures === false)
return;
let imagelist = imageListSortByDate(getImageList(settings));
@@ -557,7 +558,8 @@ export function purgeImages(settings) {
let origlength = imagelist.length;
while (imagelist.length > maxpictures) {
var to_delete = imagelist.shift(); // get the first (oldest item from the list)
- if (deletepictures && to_delete != '') {
+ var ok_to_delete = keepfavorites && (to_delete.favourite && to_delete.favourite === true);
+ if (deletepictures && to_delete != '' && ok_to_delete) {
let imageFilename = imageToFilename(settings, to_delete);
BingLog('deleting '+imageFilename);
deleteImage(imageFilename);