┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kitemlistwidget.cpp8
-rw-r--r--src/kitemviews/kstandarditemlistwidget.cpp13
-rw-r--r--src/kitemviews/kstandarditemlistwidget.h2
3 files changed, 13 insertions, 10 deletions
diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp
index c8b3d2c3c..cc3cf0dfa 100644
--- a/src/kitemviews/kitemlistwidget.cpp
+++ b/src/kitemviews/kitemlistwidget.cpp
@@ -111,11 +111,11 @@ void KItemListWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *o
}
if (m_selected && m_editedRole.isEmpty()) {
- const QStyle::State activeState(isActiveWindow() ? QStyle::State_Active : 0);
+ const QStyle::State activeState(isActiveWindow() && widget->hasFocus() ? QStyle::State_Active : 0);
drawItemStyleOption(painter, widget, activeState | QStyle::State_Enabled | QStyle::State_Selected | QStyle::State_Item);
}
- if (m_current && m_editedRole.isEmpty()) {
+ if (m_current && m_editedRole.isEmpty() && widget->hasFocus()) {
QStyleOptionFocusRect focusRectOption;
initStyleOption(&focusRectOption);
focusRectOption.rect = textFocusRect().toRect();
@@ -135,8 +135,8 @@ void KItemListWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *o
m_hoverCache->fill(Qt::transparent);
QPainter pixmapPainter(m_hoverCache);
- const QStyle::State activeState(isActiveWindow() ? QStyle::State_Active : 0);
- drawItemStyleOption(&pixmapPainter, widget, activeState | QStyle::State_Enabled | QStyle::State_MouseOver | QStyle::State_Item);
+ const QStyle::State activeState(isActiveWindow() && widget->hasFocus() ? QStyle::State_Active | QStyle::State_Enabled : 0);
+ drawItemStyleOption(&pixmapPainter, widget, activeState | QStyle::State_MouseOver | QStyle::State_Item);
}
const qreal opacity = painter->opacity();
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp
index c4eab6d74..24a986419 100644
--- a/src/kitemviews/kstandarditemlistwidget.cpp
+++ b/src/kitemviews/kstandarditemlistwidget.cpp
@@ -386,7 +386,7 @@ void KStandardItemListWidget::paint(QPainter *painter, const QStyleOptionGraphic
}
painter->setFont(m_customizedFont);
- painter->setPen(textColor());
+ painter->setPen(textColor(widget));
const TextInfo *textInfo = m_textInfo.value("text");
if (!textInfo) {
@@ -645,7 +645,7 @@ void KStandardItemListWidget::setTextColor(const QColor &color)
}
}
-QColor KStandardItemListWidget::textColor() const
+QColor KStandardItemListWidget::textColor(QWidget *widget) const
{
if (!isSelected()) {
if (m_isHidden) {
@@ -655,7 +655,7 @@ QColor KStandardItemListWidget::textColor() const
}
}
- const QPalette::ColorGroup group = isActiveWindow() ? QPalette::Active : QPalette::Inactive;
+ const QPalette::ColorGroup group = isActiveWindow() && widget->hasFocus() ? QPalette::Active : QPalette::Inactive;
const QPalette::ColorRole role = isSelected() ? QPalette::HighlightedText : normalTextColorRole();
return styleOption().palette.color(group, role);
}
@@ -1015,8 +1015,11 @@ void KStandardItemListWidget::updatePixmapCache()
iconName = QStringLiteral("unknown");
}
const QStringList overlays = values["iconOverlays"].toStringList();
- m_pixmap =
- pixmapForIcon(iconName, overlays, maxIconHeight, m_layout != IconsLayout && isActiveWindow() && isSelected() ? QIcon::Selected : QIcon::Normal);
+ const bool hasFocus = scene()->views()[0]->parentWidget()->hasFocus();
+ m_pixmap = pixmapForIcon(iconName,
+ overlays,
+ maxIconHeight,
+ m_layout != IconsLayout && isActiveWindow() && isSelected() && hasFocus ? 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
diff --git a/src/kitemviews/kstandarditemlistwidget.h b/src/kitemviews/kstandarditemlistwidget.h
index 5bfb7df29..d146a02fb 100644
--- a/src/kitemviews/kstandarditemlistwidget.h
+++ b/src/kitemviews/kstandarditemlistwidget.h
@@ -139,7 +139,7 @@ protected:
virtual QPalette::ColorRole normalTextColorRole() const;
void setTextColor(const QColor &color);
- QColor textColor() const;
+ QColor textColor(QWidget *widget) const;
void setOverlay(const QPixmap &overlay);
QPixmap overlay() const;