X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/f973710dc6bcfc13f8db4e5720dd2aeb1518b012..af6a8a3a102ff0230fcc6d90ad213e2e7d706fa8:/lib/service/listboxservice.cpp diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp index cd48c62e..c869b49c 100644 --- a/lib/service/listboxservice.cpp +++ b/lib/service/listboxservice.cpp @@ -48,6 +48,8 @@ void eListboxServiceContent::setCurrent(const eServiceReference &ref) m_cursor_number = index; break; } + if (m_listbox) + m_listbox->moveSelectionTo(index); } void eListboxServiceContent::getCurrent(eServiceReference &ref) @@ -142,7 +144,7 @@ void eListboxServiceContent::setVisualMode(int mode) if (m_visual_mode == visModeSimple) { m_element_position[celServiceName] = eRect(ePoint(0, 0), m_itemsize); - m_element_font[celServiceName] = new gFont("Arial", 23); + m_element_font[celServiceName] = new gFont("Regular", 23); m_element_position[celServiceNumber] = eRect(); m_element_font[celServiceNumber] = 0; m_element_position[celIcon] = eRect(); @@ -189,6 +191,11 @@ void eListboxServiceContent::cursorHome() { if (m_current_marked && m_saved_cursor == m_list.end()) { + if (m_cursor_number >= m_size) + { + m_cursor_number = m_size-1; + --m_cursor; + } while (m_cursor_number) { std::iter_swap(m_cursor--, m_cursor); @@ -351,7 +358,7 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const if (m_current_marked && selected) style.setStyle(painter, eWindowStyle::styleListboxMarked); else if (cursorValid() && isMarked(*m_cursor)) - style.setStyle(painter, eWindowStyle::styleListboxMarked); + style.setStyle(painter, selected ? eWindowStyle::styleListboxMarkedAndSelected : eWindowStyle::styleListboxMarked); else style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal); painter.clear();