Index: plasma/containment.cpp =================================================================== --- plasma/containment.cpp +++ plasma/containment.cpp 2010-01-29 11:13:08.000000000 +0100 @@ -56,6 +56,7 @@ #include "extenderitem.h" #include "svg.h" #include "wallpaper.h" +#include "theme.h" #include "remote/accessappletjob.h" #include "remote/accessmanager.h" @@ -1823,9 +1824,26 @@ { d->drawWallpaper = drawWallpaper; if (drawWallpaper) { - KConfigGroup cfg = config(); - const QString wallpaper = cfg.readEntry("wallpaperplugin", defaultWallpaper); - const QString mode = cfg.readEntry("wallpaperpluginmode", defaultWallpaperMode); + + Plasma::Theme theme; + QString UsedTheme = theme.themeName() ; + QString wallpaper = defaultWallpaper; + QString mode = defaultWallpaperMode; + + const QString metadataPath(KStandardDirs::locate("data", "desktoptheme/" + UsedTheme + "/metadata.desktop")); + KConfig metadata(metadataPath); + KConfigGroup cfg ; + + if (metadata.hasGroup("Wallpaper")) { + cfg = KConfigGroup(&metadata, "Wallpaper"); + wallpaper = cfg.readEntry("wallpaperplugin", wallpaper); + mode = cfg.readEntry("wallpaperpluginmode", mode); + } + + cfg = config(); + wallpaper = cfg.readEntry("wallpaperplugin", defaultWallpaper); + mode = cfg.readEntry("wallpaperpluginmode", defaultWallpaperMode); + setWallpaper(wallpaper, mode); } else { delete d->wallpaper;