X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4c9d04cb33fb06dfa075b431e36e7ea938a5f963..2e74b767faf7548c6f6aae3a12506d46d3edd6c0:/lib/gui/ewidgetdesktop.cpp diff --git a/lib/gui/ewidgetdesktop.cpp b/lib/gui/ewidgetdesktop.cpp index 1b5cf9b2..24fb334b 100644 --- a/lib/gui/ewidgetdesktop.cpp +++ b/lib/gui/ewidgetdesktop.cpp @@ -55,7 +55,7 @@ void eWidgetDesktop::invalidate(const gRegion ®ion) m_dirty_region |= region; } -void eWidgetDesktop::setBackgroundColor(gColor col) +void eWidgetDesktop::setBackgroundColor(gRGB col) { m_background_color = col; @@ -70,6 +70,13 @@ void eWidgetDesktop::setBackgroundColor(gColor col) } } +void eWidgetDesktop::setPalette(gPixmap &pm) +{ + ASSERT(m_dc); + gPainter painter(m_dc); + painter.setPalette(&pm); +} + void eWidgetDesktop::paint() { gPainter painter(m_dc); @@ -82,6 +89,8 @@ void eWidgetDesktop::paint() painter.setBackgroundColor(m_background_color); painter.clear(); + painter.flush(); + m_dirty_region = gRegion(); } @@ -106,6 +115,21 @@ void eWidgetDesktop::setRedrawTask(eMainloop &ml) m_timer->start(0, 1); } +void eWidgetDesktop::makeCompatiblePixmap(gPixmap &pm) +{ + eDebug("widgetDesktop: make compatible pixmap of %p\n", &pm); + if (!m_dc) + { + eWarning("eWidgetDesktop: no DC to make pixmap compatible with!"); + return; + } + eDebug("painter.."); + gPainter painter(m_dc); + eDebug("merge!"); + painter.mergePalette(&pm); + eDebug("gone!"); +} + eWidgetDesktop::eWidgetDesktop(eSize size): m_screen_size(size), m_mainloop(0), m_timer(0) { }