diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-05-05 00:21:47 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-05-05 00:21:47 +0000 |
| commit | d73219bf587818d7648531da574beb45f6e3c000 (patch) | |
| tree | 262844c4db7b098019dc3311bb7ffed26f8c73e4 /lib/gui/ewidget.cpp | |
| parent | 9bca94aa8cb237f134d4dc5707ce9df229fdbfd3 (diff) | |
| download | enigma2-d73219bf587818d7648531da574beb45f6e3c000.tar.gz enigma2-d73219bf587818d7648531da574beb45f6e3c000.zip | |
add optional notification of childs when parent moves
Diffstat (limited to 'lib/gui/ewidget.cpp')
| -rw-r--r-- | lib/gui/ewidget.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/gui/ewidget.cpp b/lib/gui/ewidget.cpp index 7c50f4af..e0504296 100644 --- a/lib/gui/ewidget.cpp +++ b/lib/gui/ewidget.cpp @@ -23,6 +23,8 @@ eWidget::eWidget(eWidget *parent): m_animation(this), m_parent(parent ? parent-> m_current_focus = 0; m_focus_owner = 0; + + m_notify_child_on_position_change = 1; } void eWidget::move(ePoint pos) @@ -38,6 +40,11 @@ void eWidget::move(ePoint pos) m_position = pos; event(evtChangedPosition); + + if (m_notify_child_on_position_change) + for (ePtrList<eWidget>::iterator i(m_childs.begin()); i != m_childs.end(); ++i) + i->event(evtParentChangedPosition); + recalcClipRegionsWhenVisible(); /* try native move if supported. */ @@ -64,6 +71,11 @@ void eWidget::resize(eSize size) invalidate(); event(evtChangedSize); + + if (m_notify_child_on_position_change) + for (ePtrList<eWidget>::iterator i(m_childs.begin()); i != m_childs.end(); ++i) + i->event(evtParentChangedPosition); /* position/size is the same here */ + recalcClipRegionsWhenVisible(); invalidate(); } @@ -340,10 +352,12 @@ int eWidget::event(int event, void *data, void *data2) m_size = *static_cast<eSize*>(data); break; case evtChangedSize: - { m_clip_region = gRegion(eRect(ePoint(0, 0), m_size)); break; - } + case evtParentChangedPosition: + for (ePtrList<eWidget>::iterator i(m_childs.begin()); i != m_childs.end(); ++i) + i->event(evtParentChangedPosition); + break; case evtFocusGot: m_focus_owner = (eWidget*)data; break; |
