diff --git a/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp b/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp index fc9700d..0df67b9 100644 --- a/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp +++ b/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp @@ -2310,7 +2310,7 @@ void UKUIConfigStyle::drawPrimitive(QStyle::PrimitiveElement element, const QSty QPixmap pixmap = icon.pixmap(iconsize, mode, QIcon::Off); pixmap = proxy()->generatedIconPixmap(mode, pixmap, option); QPixmap target = HighLightEffect::bothOrdinaryAndHoverGeneratePixmap(pixmap, option, widget); - if(!sp->indicatorIconHoverNeedHighLight) + if(!sp->indicatorIconHoverNeedHighLight && !widget->inherits("QMenu")) target = HighLightEffect::ordinaryGeneratePixmap(pixmap, option, widget); painter->save(); painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); @@ -2354,7 +2354,7 @@ void UKUIConfigStyle::drawPrimitive(QStyle::PrimitiveElement element, const QSty QPixmap pixmap = icon.pixmap(iconsize, mode, QIcon::Off); pixmap = proxy()->generatedIconPixmap(mode, pixmap, option); QPixmap target = HighLightEffect::bothOrdinaryAndHoverGeneratePixmap(pixmap, option, widget); - if(!sp->indicatorIconHoverNeedHighLight) + if(!sp->indicatorIconHoverNeedHighLight && !widget->inherits("QMenu")) target = HighLightEffect::ordinaryGeneratePixmap(pixmap, option, widget); painter->save(); painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); @@ -6194,7 +6194,19 @@ void UKUIConfigStyle::drawControl(QStyle::ControlElement element, const QStyleOp // mode = QIcon::Selected; QIcon::State state = vi->state & QStyle::State_Open ? QIcon::On : QIcon::Off; QPixmap pixmap = vi->icon.pixmap(vi->decorationSize, mode, state); - pixmap = proxy()->generatedIconPixmap(mode, pixmap, vi); + + if(!sp->indicatorIconHoverNeedHighLight) + pixmap = HighLightEffect::ordinaryGeneratePixmap(pixmap, option, widget); + else if(widget && (widget->inherits("QTreeView") || widget->inherits("QTreeWidget"))){ + if(widget->property("highlightMode").isValid() && widget->property("highlightMode").toBool()) + pixmap = HighLightEffect::bothOrdinaryAndHoverGeneratePixmap(pixmap, option, widget); + else + pixmap = HighLightEffect::ordinaryGeneratePixmap(pixmap, option, widget); + } + else + pixmap = HighLightEffect::bothOrdinaryAndHoverGeneratePixmap(pixmap, option, widget); + + //pixmap = proxy()->generatedIconPixmap(mode, pixmap, vi); painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); proxy()->drawItemPixmap(painter, iconRect, vi->decorationAlignment, HighLightEffect::ordinaryGeneratePixmap(pixmap, vi, widget)); }