Branch: master

408f2244 2014-10-05 23:38:01 Timothy Pearson
Allow desktop settings to be changed on a single-screen system when a multi-screen configuration was previously set
This resolves Bug 1684
M kcontrol/background/bgrender.cpp
M kcontrol/background/bgsettings.cpp
diff --git a/kcontrol/background/bgrender.cpp b/kcontrol/background/bgrender.cpp
index 5e9e4b8..d8cc53c 100644
--- a/kcontrol/background/bgrender.cpp
+++ b/kcontrol/background/bgrender.cpp
@@ -1208,6 +1208,10 @@
     m_bCommonScreen = m_pConfig->readBoolEntry("CommonScreen", _defCommonScreen);
 
     m_numRenderers = m_bDrawBackgroundPerScreen ? TDEApplication::desktop()->numScreens() : 1;
+    if (m_numRenderers < 2) {
+        // Only one screen is currently available; deactivate per-screen rendering but do not overwrite multi-screen settings
+        m_bDrawBackgroundPerScreen = false;
+    }
 
     m_bFinished.resize(m_numRenderers);
     m_bFinished.fill(false);
diff --git a/kcontrol/background/bgsettings.cpp b/kcontrol/background/bgsettings.cpp
index f29eeac..1ee452a 100644
--- a/kcontrol/background/bgsettings.cpp
+++ b/kcontrol/background/bgsettings.cpp
@@ -420,7 +420,7 @@
       KBackgroundProgram()
 {
     dirty = false; hashdirty = true;
-	m_bDrawBackgroundPerScreen = drawBackgroundPerScreen;
+    m_bDrawBackgroundPerScreen = drawBackgroundPerScreen;
     m_Desk = desk;
     m_Screen = screen;
     m_bEnabled = true;
@@ -1227,7 +1227,7 @@
     m_bExport = m_pConfig->readBoolEntry("Export", _defExport);
     m_bLimitCache = m_pConfig->readBoolEntry("LimitCache", _defLimitCache);
     m_CacheSize = m_pConfig->readNumEntry("CacheSize", _defCacheSize);
-    
+
     m_Names.clear();
     NETRootInfo info( tqt_xdisplay(), NET::DesktopNames | NET::NumberOfDesktops );
     m_bDrawBackgroundPerScreen.resize(info.numberOfDesktops());