X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/62a59db2e74147b3b8edeeefbf0ebb64afe0311c..d23552e65b55721d9288ed0789792b710db391a9:/lib/gui/ewidgetdesktop.cpp diff --git a/lib/gui/ewidgetdesktop.cpp b/lib/gui/ewidgetdesktop.cpp index 05b4ec4d..08bd0474 100644 --- a/lib/gui/ewidgetdesktop.cpp +++ b/lib/gui/ewidgetdesktop.cpp @@ -145,6 +145,9 @@ void eWidgetDesktop::recalcClipRegions(eWidget *root) createBufferForWidget(root, 0); comp = root->m_comp_buffer[i]; /* it might have changed. */ + + if (!comp) + continue; /* WAIT, don't we need to invalidate,whatever */ /* CHECKME: don't we need to recalculate everything? after all, our buffer has changed and is likely to be cleared */ gRegion visible_before = root->m_visible_with_childs; @@ -329,6 +332,10 @@ void eWidgetDesktop::paint() if (m_comp_mode == cmBuffered) { // redrawComposition(0); + } else + { + gPainter painter(m_screen.m_dc); + painter.flush(); } } @@ -374,7 +381,10 @@ void eWidgetDesktop::makeCompatiblePixmap(gPixmap &pm) ePtr target_pixmap; m_screen.m_dc->getPixmap(target_pixmap); - ASSERT(target_pixmap); + if (!target_pixmap) { + eDebug("no target pixmap! assuming bpp > 8 for accelerated graphics."); + return; + } if (target_pixmap->surface && target_pixmap->surface->bpp > 8) return;