aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/skin.xml2
-rw-r--r--lib/gui/ewindowstyle.cpp4
-rw-r--r--lib/gui/ewindowstyle.h3
-rw-r--r--lib/gui/ewindowstyleskinned.cpp4
-rw-r--r--lib/gui/ewindowstyleskinned.h2
-rw-r--r--lib/service/listboxservice.cpp2
6 files changed, 15 insertions, 2 deletions
diff --git a/data/skin.xml b/data/skin.xml
index 50646655..68985630 100644
--- a/data/skin.xml
+++ b/data/skin.xml
@@ -21,6 +21,8 @@
<color name="ListboxSelectedForeground" color="#ffffff" />
<color name="ListboxMarkedBackground" color="#ff0000" />
<color name="ListboxMarkedForeground" color="#ffffff" />
+ <color name="ListboxMarkedAndSelectedBackground" color="#800000" />
+ <color name="ListboxMarkedAndSelectedForeground" color="#ffffff" />
<color name="WindowTitleForeground" color="#ffffff" />
<color name="WindowTitleBackground" color="#33294a6b" />
<borderset name="bsWindow">
diff --git a/lib/gui/ewindowstyle.cpp b/lib/gui/ewindowstyle.cpp
index 86ff8a42..4cfaa8d4 100644
--- a/lib/gui/ewindowstyle.cpp
+++ b/lib/gui/ewindowstyle.cpp
@@ -109,6 +109,10 @@ void eWindowStyleSimple::setStyle(gPainter &painter, int what)
painter.setForegroundColor(gColor(0x2F));
painter.setBackgroundColor(gColor(0x2A));
break;
+ case styleListboxMarkedAndSelected:
+ painter.setForegroundColor(gColor(0x3F));
+ painter.setBackgroundColor(gColor(0x3A));
+ break;
}
}
diff --git a/lib/gui/ewindowstyle.h b/lib/gui/ewindowstyle.h
index 04d9d44a..3c9c805b 100644
--- a/lib/gui/ewindowstyle.h
+++ b/lib/gui/ewindowstyle.h
@@ -18,7 +18,8 @@ public:
styleLabel,
styleListboxSelected,
styleListboxNormal,
- styleListboxMarked
+ styleListboxMarked,
+ styleListboxMarkedAndSelected
};
virtual void drawFrame(gPainter &painter, const eRect &frame, int type) = 0;
diff --git a/lib/gui/ewindowstyleskinned.cpp b/lib/gui/ewindowstyleskinned.cpp
index 5da4696e..a3cc3c5f 100644
--- a/lib/gui/ewindowstyleskinned.cpp
+++ b/lib/gui/ewindowstyleskinned.cpp
@@ -70,6 +70,10 @@ void eWindowStyleSkinned::setStyle(gPainter &painter, int what)
painter.setForegroundColor(m_color[colListboxMarkedForeground]);
painter.setBackgroundColor(m_color[colListboxMarkedBackground]);
break;
+ case styleListboxMarkedAndSelected:
+ painter.setForegroundColor(m_color[colListboxMarkedAndSelectedForeground]);
+ painter.setBackgroundColor(m_color[colListboxMarkedAndSelectedBackground]);
+ break;
}
}
diff --git a/lib/gui/ewindowstyleskinned.h b/lib/gui/ewindowstyleskinned.h
index 17988f65..1c16a7b5 100644
--- a/lib/gui/ewindowstyleskinned.h
+++ b/lib/gui/ewindowstyleskinned.h
@@ -61,6 +61,8 @@ public:
colListboxSelectedForeground,
colListboxMarkedBackground,
colListboxMarkedForeground,
+ colListboxMarkedAndSelectedBackground,
+ colListboxMarkedAndSelectedForeground,
colWindowTitleForeground,
colWindowTitleBackground,
diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp
index 13538e99..c869b49c 100644
--- a/lib/service/listboxservice.cpp
+++ b/lib/service/listboxservice.cpp
@@ -358,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();