From 9d32093421adec260a8abc0920257564d45c12bf Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 18 Nov 2022 14:27:51 +0100 Subject: [PATCH] Utils: Workaround StyleHelper::drawArrow for Qt 6.4.1 A change in Qt 6.4.1 influences the behavior of QPalette::setColor, so that the arrows appear in a wrong color. An enforeced detachment of the palette in style option works as a workaround. Fixes: QTCREATORBUG-28470 Change-Id: I4a44ff59c368105fdf448152d83e96cdedd46495 Reviewed-by: Eike Ziller --- src/libs/utils/stylehelper.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/stylehelper.cpp b/src/libs/utils/stylehelper.cpp index de1419a11f0..ade12533db3 100644 --- a/src/libs/utils/stylehelper.cpp +++ b/src/libs/utils/stylehelper.cpp @@ -306,7 +306,9 @@ void StyleHelper::drawArrow(QStyle::PrimitiveElement element, QPainter *painter, static const QCommonStyle* const style = qobject_cast(QApplication::style()); if (!style) return; - tweakedOption.palette.setColor(QPalette::ButtonText, color.rgb()); + QPalette pal = tweakedOption.palette; + pal.setColor(QPalette::ButtonText, color.rgb()); + tweakedOption.palette = pal; // Workaround for QTCREATORBUG-28470 tweakedOption.rect = rect; painter.setOpacity(color.alphaF()); style->QCommonStyle::drawPrimitive(element, &tweakedOption, &painter);