Add abstract class gMainDC as an interface for gFBDC and gSDLDC
[enigma2.git] / lib / gdi / grc.cpp
index 4b2c5550ccd13a67815a926085b710bf4aea56b9..a45b3b1ec6feb386541c71a425bc8b00b870a9c5 100644 (file)
@@ -164,7 +164,13 @@ void *gRC::thread()
                                if (pthread_cond_timedwait(&cond, &mutex, &timeout) == ETIMEDOUT)
                                {
                                        if (eApp && !eApp->isIdle())
-                                               idle = 0;
+                                       {
+                                               int idle_count = eApp->idleCount();
+                                               if (idle_count == m_prev_idle_count)
+                                                       idle = 0;
+                                               else
+                                                       m_prev_idle_count = idle_count;
+                                       }
                                }
 
                                if (!idle)
@@ -330,6 +336,7 @@ void gPainter::renderPara(eTextPara *para, ePoint offset)
 {
        if ( m_dc->islocked() )
                return;
+       ASSERT(para);
        gOpcode o;
        o.opcode=gOpcode::renderPara;
        o.dc = m_dc.grabRef();
@@ -409,6 +416,7 @@ void gPainter::setPalette(gRGB *colors, int start, int len)
 {
        if ( m_dc->islocked() )
                return;
+       ASSERT(colors);
        gOpcode o;
        o.opcode=gOpcode::setPalette;
        o.dc = m_dc.grabRef();
@@ -434,6 +442,7 @@ void gPainter::mergePalette(gPixmap *target)
 {
        if ( m_dc->islocked() )
                return;
+       ASSERT(target);
        gOpcode o;
        o.opcode = gOpcode::mergePalette;
        o.dc = m_dc.grabRef();
@@ -600,7 +609,7 @@ gDC::~gDC()
        delete[] m_spinner_pic;
 }
 
-void gDC::exec(gOpcode *o)
+void gDC::exec(const gOpcode *o)
 {
        switch (o->opcode)
        {