X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/7c4eec27070e8c2cb925117caaf7e9c2c2a754e9..62cda8b3874aabce4d6d51702d82f4b91f8d3aba:/lib/gui/ewidget.cpp diff --git a/lib/gui/ewidget.cpp b/lib/gui/ewidget.cpp index cbc1a8c0..7c50f4af 100644 --- a/lib/gui/ewidget.cpp +++ b/lib/gui/ewidget.cpp @@ -109,7 +109,7 @@ void eWidget::show() while (root && !root->m_desktop) { root = root->m_parent; - if (root) + if (!root) { /* oops: our root widget does not have a desktop associated. probably somebody already erased the root, but tries some @@ -199,6 +199,21 @@ void eWidget::setTransparent(int transp) m_vis &=~wVisTransparent; } +ePoint eWidget::getAbsolutePosition() +{ + eWidget *root = this; + ePoint abspos = position(); + + while (root && !root->m_desktop) + { + root = root->m_parent; + assert(root); + abspos += root->position(); + } + + return abspos; +} + void eWidget::mayKillFocus() { setFocus(0);