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()); |