X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/fc61bfd83af4aa0174f1edd64912049017996f56..ed40f6f85c9c07c3c1224ae20601082c0309a631:/lib/gui/ewidgetdesktop.cpp diff --git a/lib/gui/ewidgetdesktop.cpp b/lib/gui/ewidgetdesktop.cpp index d8de2aec..4d0c0a9b 100644 --- a/lib/gui/ewidgetdesktop.cpp +++ b/lib/gui/ewidgetdesktop.cpp @@ -18,7 +18,7 @@ void eWidgetDesktop::addRootWidget(eWidget *root) for (;;) { - if ((insert_position == m_root.end()) || (invert_sense ^ (insert_position->m_z_position >= root->m_z_position))) + if ((insert_position == m_root.end()) || (invert_sense ^ (insert_position->m_z_position < root->m_z_position))) { m_root.insert(insert_position, root); break; @@ -299,14 +299,17 @@ void eWidgetDesktop::makeCompatiblePixmap(gPixmap &pm) return; } - ePtr pixmap_dc = new gDC(&pm); - gPainter pixmap_painter(pixmap_dc); - ePtr target_pixmap; m_screen.m_dc->getPixmap(target_pixmap); assert(target_pixmap); + if (target_pixmap->surface && target_pixmap->surface->bpp > 8) + return; + + ePtr pixmap_dc = new gDC(&pm); + gPainter pixmap_painter(pixmap_dc); + pixmap_painter.mergePalette(target_pixmap); } @@ -327,6 +330,7 @@ eWidgetDesktop::eWidgetDesktop(eSize size): m_mainloop(0), m_timer(0) m_screen.m_dirty_region = gRegion(eRect(ePoint(0, 0), size)); m_screen.m_screen_size = size; m_require_redraw = 0; + m_style_id = 0; CONNECT(gRC::getInstance()->notify, eWidgetDesktop::notify); setCompositionMode(cmImmediate);