X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b682e464035635927e72142065f0332d58ea8fcb..a9f9792e9d271864182d32bfff58795690084cab:/lib/gui/elistbox.cpp diff --git a/lib/gui/elistbox.cpp b/lib/gui/elistbox.cpp index ccd13ff4..bfa09b88 100644 --- a/lib/gui/elistbox.cpp +++ b/lib/gui/elistbox.cpp @@ -20,6 +20,9 @@ eListbox::eListbox(eWidget *parent) eListbox::~eListbox() { + if (m_scrollbar) + delete m_scrollbar; + ePtr ptr; eActionMap::getInstance(ptr); ptr->unbindAction(this, 0); @@ -156,9 +159,19 @@ void eListbox::moveSelection(int dir) void eListbox::moveSelectionTo(int index) { - m_content->cursorHome(); - m_content->cursorMove(index); - moveSelection(justCheck); + if ( m_content ) + { + m_content->cursorHome(); + m_content->cursorMove(index); + moveSelection(justCheck); + } +} + +int eListbox::getCurrentIndex() +{ + if ( m_content && m_content->cursorValid() ) + return m_content->cursorGet(); + return 0; } void eListbox::updateScrollBar() @@ -333,14 +346,17 @@ void eListbox::entryChanged(int index) } } -void eListbox::entryReset() +void eListbox::entryReset(bool cursorHome) { m_content_changed=true; m_prev_scrollbar_page=-1; - if (m_content) - m_content->cursorHome(); - m_top = 0; - m_selected = 0; + if ( cursorHome ) + { + if (m_content) + m_content->cursorHome(); + m_top = 0; + m_selected = 0; + } moveSelection(justCheck); invalidate(); }