X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4c9d04cb33fb06dfa075b431e36e7ea938a5f963..3cddda083f4ace59e279f9f4f6ae12bad079d33b:/lib/gui/ewidget.cpp diff --git a/lib/gui/ewidget.cpp b/lib/gui/ewidget.cpp index 7f089361..3ba248ff 100644 --- a/lib/gui/ewidget.cpp +++ b/lib/gui/ewidget.cpp @@ -7,6 +7,7 @@ eWidget::eWidget(eWidget *parent): m_parent(parent ? parent->child() : 0) { m_vis = 0; m_desktop = 0; + m_have_background_color = 0; if (m_parent) m_vis = wVisShow; @@ -45,10 +46,12 @@ void eWidget::resize(eSize size) fits into the other completely, and invalidate only once. */ eSize old_size = m_size; - event(evtWillChangeSize, &size); + eSize offset = eSize(0, 0); + event(evtWillChangeSize, &size, &offset); if (old_size == m_size) return; - + move(position() + offset); + invalidate(); event(evtChangedSize); recalcClipRegionsWhenVisible(); @@ -145,6 +148,13 @@ void eWidget::destruct() delete this; } +void eWidget::setBackgroundColor(const gRGB &col) +{ + eDebug("set background color in ewidget!"); + m_background_color = col; + m_have_background_color = 1; +} + eWidget::~eWidget() { hide(); @@ -217,9 +227,16 @@ int eWidget::event(int event, void *data, void *data2) // eDebug("eWidget::evtPaint"); // dumpRegion(*(gRegion*)data); - ePtr style; - if (!getStyle(style)) - style->paintBackground(painter, ePoint(0, 0), size()); + if (!m_have_background_color) + { + ePtr style; + if (!getStyle(style)) + style->paintBackground(painter, ePoint(0, 0), size()); + } else + { + painter.setBackgroundColor(m_background_color); + painter.clear(); + } break; } case evtKey: