iconName = QStringLiteral("unknown");
}
const QStringList overlays = values["iconOverlays"].toStringList();
- m_pixmap = pixmapForIcon(iconName, overlays, maxIconHeight, QIcon::Normal);
+ m_pixmap = pixmapForIcon(iconName, overlays, maxIconHeight, m_layout != IconsLayout && isActiveWindow() && isSelected() ? QIcon::Selected : QIcon::Normal);
} else if (m_pixmap.width() / m_pixmap.devicePixelRatio() != maxIconWidth || m_pixmap.height() / m_pixmap.devicePixelRatio() != maxIconHeight) {
// A custom pixmap has been applied. Assure that the pixmap
// setup time.
foreach (const QString& overlay, overlays) {
if (!overlay.isEmpty()) {
+ int state = KIconLoader::DefaultState;
+
+ switch (mode) {
+ case QIcon::Normal:
+ break;
+ case QIcon::Active:
+ state = KIconLoader::ActiveState;
+ break;
+ case QIcon::Disabled:
+ state = KIconLoader::DisabledState;
+ break;
+ case QIcon::Selected:
+ state = KIconLoader::SelectedState;
+ break;
+ }
+
// There is at least one overlay, draw all overlays above m_pixmap
// and cancel the check
- KIconLoader::global()->drawOverlays(overlays, pixmap, KIconLoader::Desktop);
+ KIconLoader::global()->drawOverlays(overlays, pixmap, KIconLoader::Desktop, state);
break;
}
}