X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d73219bf587818d7648531da574beb45f6e3c000..2c333dec2921a4d9248a33e4be7bc075f930f859:/lib/gui/ewidget.cpp diff --git a/lib/gui/ewidget.cpp b/lib/gui/ewidget.cpp index e0504296..8a396ad3 100644 --- a/lib/gui/ewidget.cpp +++ b/lib/gui/ewidget.cpp @@ -205,10 +205,14 @@ void eWidget::setZPosition(int z) void eWidget::setTransparent(int transp) { - if (transp) - m_vis |= wVisTransparent; - else - m_vis &=~wVisTransparent; + if (isTransparent() != transp) + { + if (transp) + m_vis |= wVisTransparent; + else + m_vis &=~wVisTransparent; + recalcClipRegionsWhenVisible(); + } } ePoint eWidget::getAbsolutePosition() @@ -341,8 +345,13 @@ int eWidget::event(int event, void *data, void *data2) } } else { - if (m_have_background_color) - painter.setBackgroundColor(m_background_color); + eWidget *w = this; + + while (w && !w->m_have_background_color) + w = w->m_parent; + + if (w) + painter.setBackgroundColor(w->m_background_color); } break; }