From a3b84f683e0baae34dc37c85a40dcae3e5306419 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 3 Nov 2009 11:24:02 +0100 Subject: QStyleSheetStyle: CE_PushButton Do not call the parent style if we have nothing to draw This fixes the focus rect that appears on buttons with GtkStyle if a stylesheet is used. Task-number: QTBUG-4488 Reviewed-by: Gabriel --- src/gui/styles/qstylesheetstyle.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp index a224218..dfe5209 100644 --- a/src/gui/styles/qstylesheetstyle.cpp +++ b/src/gui/styles/qstylesheetstyle.cpp @@ -3325,9 +3325,14 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q break; case CE_PushButton: - ParentStyle::drawControl(ce, opt, p, w); - return; - + if (const QStyleOptionButton *btn = qstyleoption_cast(opt)) { + if (rule.hasDrawable() || rule.hasBox() || rule.hasPosition() || rule.hasPalette() || + ((btn->features & QStyleOptionButton::HasMenu) && hasStyleRule(w, PseudoElement_PushButtonMenuIndicator))) { + ParentStyle::drawControl(ce, opt, p, w); + return; + } + } + break; case CE_PushButtonBevel: if (const QStyleOptionButton *btn = qstyleoption_cast(opt)) { QStyleOptionButton btnOpt(*btn); -- cgit v0.12