Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 901b66721cd8b67ee1adbc6604574c15 > files > 37

kdebase-3.5.10-6mdv2009.0.src.rpm

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