Version: (using KDE KDE 3.3.2) Installed from: Compiled From Sources Compiler: GCC 3.3.4 I have 6 virtual desktops defined. When I first start KDE, before I change off of the first, I have a SuperKaramba theme that uses PyKDE get the list of wallpapers that are defined for each desktop. For desktops 5 and 6, kdesktop.KBackgroundInterface.currentWallpaper() simply returns the wallpaper of the first desktop instead of the ones that are set there. It returns the correct paths after I have changed to desktops 5 and 6. How To Reproduce: Define 5 or more desktops with a different wallpaper on each one. Exit out of KDE and log back in Launch kdcop Browse to kdesktop -> KBackgroundInterface Execute currentWallpaper(1) then currentWallpaper(5) and compare the results Change to desktop five and rerun currentWallpaper(5)
Created attachment 13965 [details] Patch to allocate all desktops upon startup.
Any issues with allocating all the desktops at startup?
On Sunday 18 December 2005 04:36, Kurt V.Hindenburg wrote: > Any issues with allocating all the desktops at startup? Slower KDE startup?
validateDesk is only called for only DCOP calls: currentWallpaper, wallPaperFiles, wallPaperList and setWallpaper so it should not effect performance. I assume .size() is cheaper than numberOfDesktops(). Index: bgmanager.cc =================================================================== --- bgmanager.cc (revision 488733) +++ bgmanager.cc (working copy) @@ -577,6 +577,9 @@ // Return a valid desk number. int KBackgroundManager::validateDesk(int desk) { + if (desk > (int)m_Renderer.size()) + slotChangeNumberOfDesktops( m_pKwinmodule->numberOfDesktops() ); + if ( (desk <= 0) || (desk > (int)m_Renderer.size()) ) return realDesktop();
SVN commit 498031 by hindenburg: Fix initializations for desktops>4 when using DCOP calls. BUG: 98734 M +3 -0 bgmanager.cc --- branches/KDE/3.5/kdebase/kdesktop/bgmanager.cc #498030:498031 @@ -577,6 +577,9 @@ // Return a valid desk number. int KBackgroundManager::validateDesk(int desk) { + if (desk > (int)m_Renderer.size()) + slotChangeNumberOfDesktops( m_pKwinmodule->numberOfDesktops() ); + if ( (desk <= 0) || (desk > (int)m_Renderer.size()) ) return realDesktop();
SVN commit 498067 by beaulen: Forward port fix for bug 98734 CCBUG: 98734 M +3 -0 bgmanager.cc --- trunk/KDE/kdebase/workspace/kdesktop/bgmanager.cc #498066:498067 @@ -585,6 +585,9 @@ // Return a valid desk number. int KBackgroundManager::validateDesk(int desk) { + if (desk > (int)m_Renderer.size()) + slotChangeNumberOfDesktops( m_pKwinmodule->numberOfDesktops() ); + if ( (desk <= 0) || (desk > (int)m_Renderer.size()) ) return realDesktop();
Bug closed. Kdesktop is no more mantained.