aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-11-09 20:07:21 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-11-09 20:07:21 +0000
commit325d00ce4ba8a2b239b0837e878d5c2721e5682a (patch)
treee29034fcd094057110ca66fa89373a0026c580f4 /lib
parentb234d52de02cb8c2ae18690516f970a239e0a755 (diff)
downloadenigma2-325d00ce4ba8a2b239b0837e878d5c2721e5682a.tar.gz
enigma2-325d00ce4ba8a2b239b0837e878d5c2721e5682a.zip
fixes for previous commit
Diffstat (limited to 'lib')
-rw-r--r--lib/service/listboxservice.cpp44
1 files changed, 24 insertions, 20 deletions
diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp
index b59b0f32..10f57565 100644
--- a/lib/service/listboxservice.cpp
+++ b/lib/service/listboxservice.cpp
@@ -446,10 +446,17 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
{
painter.clip(eRect(offset, m_itemsize));
- bool marked = m_current_marked || (cursorValid() && isMarked(*m_cursor));
+ int marked = 0;
- if (marked)
- style.setStyle(painter, selected ? eWindowStyle::styleListboxMarkedAndSelected : eWindowStyle::styleListboxMarked);
+ if (m_current_marked && selected)
+ marked = 2;
+ else if (cursorValid() && isMarked(*m_cursor))
+ {
+ if (selected)
+ marked = 2;
+ else
+ marked = 1;
+ }
else
style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal);
@@ -459,22 +466,21 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
if (m_listbox)
local_style = m_listbox->getLocalStyle();
- if (marked)
+ if (marked == 1) // marked
{
- if (selected)
- {
- if (m_color_set[markedForegroundSelected])
- painter.setForegroundColor(m_color[markedForegroundSelected]);
- if (m_color_set[markedBackgroundSelected])
- painter.setBackgroundColor(m_color[markedBackgroundSelected]);
- }
- else
- {
- if (m_color_set[markedForeground])
- painter.setForegroundColor(m_color[markedForeground]);
- if (m_color_set[markedBackground])
- painter.setBackgroundColor(m_color[markedBackground]);
- }
+ style.setStyle(painter, eWindowStyle::styleListboxMarked);
+ if (m_color_set[markedForeground])
+ painter.setForegroundColor(m_color[markedForeground]);
+ if (m_color_set[markedBackground])
+ painter.setBackgroundColor(m_color[markedBackground]);
+ }
+ else if (marked == 2) // marked and selected
+ {
+ style.setStyle(painter, eWindowStyle::styleListboxMarkedAndSelected);
+ if (m_color_set[markedForegroundSelected])
+ painter.setForegroundColor(m_color[markedForegroundSelected]);
+ if (m_color_set[markedBackgroundSelected])
+ painter.setBackgroundColor(m_color[markedBackgroundSelected]);
}
else if (local_style)
{
@@ -514,8 +520,6 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
painter.clear();
}
- painter.clear();
-
if (cursorValid())
{
/* get service information */