diff -p -up kdebase-3.5.9/kdesktop/bgmanager.h.OLD_RESIZEPB kdebase-3.5.9/kdesktop/bgmanager.h --- kdebase-3.5.9/kdesktop/bgmanager.h.OLD_RESIZEPB 2008-03-31 12:01:29.000000000 -0300 +++ kdebase-3.5.9/kdesktop/bgmanager.h 2008-03-31 12:02:46.000000000 -0300 @@ -132,6 +132,7 @@ private: int fadeDesk; QTime mBenchmark; bool crossInit; + bool resizingDesktop; // is True if desktop is resizing }; #endif // __BGManager_h_Included__ diff -p -up kdebase-3.5.9/kdesktop/bgmanager.cc.OLD_RESIZEPB kdebase-3.5.9/kdesktop/bgmanager.cc --- kdebase-3.5.9/kdesktop/bgmanager.cc.OLD_RESIZEPB 2008-03-31 12:01:21.000000000 -0300 +++ kdebase-3.5.9/kdesktop/bgmanager.cc 2008-03-31 12:16:00.000000000 -0300 @@ -104,7 +104,7 @@ KBackgroundManager::KBackgroundManager(Q /*CrossFade's config*/ m_crossTimer = new QTimer(this); connect(m_crossTimer, SIGNAL(timeout()), SLOT(slotCrossFadeTimeout())); - + resizingDesktop = true; /*Ends here*/ connect(m_pKwinmodule, SIGNAL(currentDesktopChanged(int)), SLOT(slotChangeDesktop(int))); @@ -473,7 +473,7 @@ void KBackgroundManager::slotImageDone(i //START - if (!m_Renderer[effectiveDesktop()]->renderer(0)->usingCrossXml()){ + if (!m_Renderer[effectiveDesktop()]->renderer(0)->usingCrossXml() && !resizingDesktop){ int mode = m_Renderer[effectiveDesktop()]->renderer(0)->wallpaperMode(); width = QApplication::desktop()->screenGeometry().width(); //m_pDesktop->width(); height = QApplication::desktop()->screenGeometry().height();// m_pDesktop->height(); @@ -534,6 +534,8 @@ void KBackgroundManager::slotImageDone(i r->cleanup(); } + resizingDesktop = false; + } @@ -838,6 +840,7 @@ void KBackgroundManager::repaintBackgrou void KBackgroundManager::desktopResized() { + resizingDesktop = true; for (unsigned i=0; i<m_Renderer.size(); i++) { KVirtualBGRenderer * r = m_Renderer[i]; @@ -848,8 +851,12 @@ void KBackgroundManager::desktopResized( r->desktopResized(); } m_Hash = 0; - if( m_pDesktop ) + if( m_pDesktop ){ m_pDesktop->resize( kapp->desktop()->size()); + if (m_Renderer[effectiveDesktop()]->renderer(0)->usingCrossXml()){ + m_Renderer[effectiveDesktop()]->renderer(0)->changeWallpaper(); + } + } // Repaint desktop slotChangeDesktop(0); }