[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    patch: background refresh
From:       Geert Jansen <g.t.jansen () stud ! tue ! nl>
Date:       2000-08-28 10:07:53
[Download RAW message or body]

Hi!

The patch below hould fix the problem that a background program (xearth) is 
not updated, when exports are off. Please revise.

Greetings,
Geert
["difje" (text/x-c++)]

Index: bgmanager.cc
===================================================================
RCS file: /home/kde/kdebase/kdesktop/bgmanager.cc,v
retrieving revision 1.49
diff -u -r1.49 bgmanager.cc
--- bgmanager.cc	2000/07/16 07:54:22	1.49
+++ bgmanager.cc	2000/08/28 09:40:22
@@ -23,6 +23,7 @@
 #include <qwhatsthis.h>
 #include <qpainter.h>
 #include <qscrollview.h>
+#include <qarray.h>
 
 #include <kglobal.h>
 #include <klocale.h>
@@ -48,6 +49,7 @@
 
 template class QVector<KBackgroundRenderer>;
 template class QVector<KBackgroundCacheEntry>;
+template class QArray<int>;
 
 /**** KBackgroundManager ****/
 
@@ -488,14 +490,17 @@
  */
 void KBackgroundManager::slotTimeout()
 {
+    QArray<int> running(m_Renderer.size());
+    running.fill(0);
+
     for (unsigned i=0; i<m_Renderer.size(); i++)
     {
         KBackgroundRenderer *r = m_Renderer[i];
         bool change = false;
 
         if ((r->backgroundMode() == KBackgroundSettings::Program) &&
-            (m_Cache[i]->hash != 0) &&
-	    (r->KBackgroundProgram::needUpdate())
+	    (r->KBackgroundProgram::needUpdate()) &&
+            (!running.contains(r->hash()))
 	   )
         {
 	    r->KBackgroundProgram::update();
@@ -509,7 +514,10 @@
         }
 
         if (change)
+	{
+	    running[i] = r->hash();
             r->start();
+	}
     }
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic