+ if (m_comp_mode == cmImmediate)
+ {
+ ASSERT(m_screen.m_dc);
+ gPainter painter(m_screen.m_dc);
+ painter.setPalette(&pm);
+ }
+
+ if (m_comp_mode == cmBuffered)
+ {
+ for (ePtrList<eWidget>::iterator i(m_root.begin()); i != m_root.end(); ++i)
+ {
+ ASSERT(i->m_comp_buffer->m_dc);
+ gPainter painter(i->m_comp_buffer->m_dc);
+ painter.setPalette(&pm);
+ }
+ }
+}
+
+void eWidgetDesktop::paintBackground(eWidgetDesktopCompBuffer *comp)
+{
+ comp->m_dirty_region &= comp->m_background_region;
+
+ gPainter painter(comp->m_dc);
+
+ painter.resetClip(comp->m_dirty_region);
+ painter.setBackgroundColor(comp->m_background_color);
+ painter.clear();
+ painter.flush();
+
+ comp->m_dirty_region = gRegion();