From 94620219ffaf0be7e15d73750137b0d45ed24685 Mon Sep 17 00:00:00 2001 From: Alexander Golubev Date: Mon, 23 Mar 2026 11:18:23 +0300 Subject: kdesktop: better support for old-school multihead setups This fixes several issues on "old-school multihead" X11 setups (with several screens per display i.e. when DISPLAY has form ":x.y" also known as "TDE_MULTIHEAD" or "Zaphode mode"). Also it slightly enhances functionality for more common xinerama setups. In particular: * fixed an issue where on primary screen wallpaper is getting rendered for both secondary and primary on certain kdesktop configurations. * fixed an issue on walpaper config dialog where previews for two monitors were displayed overlapped. * update preview in config dialog in case a monitor gets connected/disconnected. * some minor whitespace cleanup. --- kcontrol/background/bgrender.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'kcontrol/background/bgrender.cpp') diff --git a/kcontrol/background/bgrender.cpp b/kcontrol/background/bgrender.cpp index 522065711..650dc63a2 100644 --- a/kcontrol/background/bgrender.cpp +++ b/kcontrol/background/bgrender.cpp @@ -1206,7 +1206,12 @@ void KVirtualBGRenderer::initRenderers() m_bCommonScreen = m_pConfig->readBoolEntry("CommonScreen", _defCommonScreen); - m_numRenderers = m_bDrawBackgroundPerScreen ? TDEApplication::desktop()->numScreens() : 1; + if (m_bDrawBackgroundPerScreen && TDEApplication::desktop()->isVirtualDesktop()) { + m_numRenderers = TDEApplication::desktop()->numScreens(); + } else { + m_numRenderers = 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; -- cgit v1.2.3