git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix handy like jumping in sorted service list
[enigma2.git]
/
lib
/
gui
/
elistbox.cpp
diff --git
a/lib/gui/elistbox.cpp
b/lib/gui/elistbox.cpp
index 873cc937cb30807aaf430cd585c4d9e8f52360fe..e2f1c26f878691063247a066fe25aa18b36a2d7f 100644
(file)
--- a/
lib/gui/elistbox.cpp
+++ b/
lib/gui/elistbox.cpp
@@
-96,17
+96,16
@@
void eListbox::moveSelection(int dir)
/* now, look wether the current selection is out of screen */
m_selected = m_content->cursorGet();
/* now, look wether the current selection is out of screen */
m_selected = m_content->cursorGet();
-
-
if
(m_selected < m_top)
+
+
while
(m_selected < m_top)
{
m_top -= m_items_per_page;
if (m_top < 0)
m_top = 0;
{
m_top -= m_items_per_page;
if (m_top < 0)
m_top = 0;
- } else if (m_selected >= m_top + m_items_per_page)
- {
- /* m_top should be always valid here as it's selected */
- m_top += m_items_per_page;
}
}
+ while (m_selected >= m_top + m_items_per_page)
+ /* m_top should be always valid here as it's selected */
+ m_top += m_items_per_page;
if (m_top != oldtop)
invalidate();
if (m_top != oldtop)
invalidate();
@@
-124,7
+123,9
@@
void eListbox::moveSelection(int dir)
void eListbox::moveSelectionTo(int index)
{
printf("Moving to listbox-entry with index %d\n", index);
void eListbox::moveSelectionTo(int index)
{
printf("Moving to listbox-entry with index %d\n", index);
- // TODO: implement it
+ m_content->cursorHome();
+ m_content->cursorMove(index);
+ moveSelection(justCheck);
}
int eListbox::event(int event, void *data, void *data2)
}
int eListbox::event(int event, void *data, void *data2)