From 1193e3c3692abae689144677a6ab3b5ca20134e3 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Mon, 11 Jun 2018 10:41:23 +0100 Subject: [PATCH] Correctly check forcebackgroundcontrastrule Summary: WindowBackgroundContrastRole property is a bool or undefined. QVariant::isValid() returns true for QVariant(false) which is not what we want for this code. toBool on an invalid QVariant will return false. Test Plan: NA. Was based on code review. To get a bug you'd have to PresentWindows/Slide effect manipulate a sliding popup, which AFAIK doesn't happen. Reviewers: #kwin Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D13478 --- effects/slidingpopups/slidingpopups.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/effects/slidingpopups/slidingpopups.cpp b/effects/slidingpopups/slidingpopups.cpp index c8bb892972..1b9a566d05 100644 --- a/effects/slidingpopups/slidingpopups.cpp +++ b/effects/slidingpopups/slidingpopups.cpp @@ -302,7 +302,7 @@ void SlidingPopupsEffect::slotWindowAdded(EffectWindow *w) void SlidingPopupsEffect::startForShow(EffectWindow *w) { if (w->isOnCurrentDesktop() && mWindowsData.contains(w)) { - if (!w->data(WindowForceBackgroundContrastRole).isValid() && w->hasAlpha()) { + if (!w->data(WindowForceBackgroundContrastRole).toBool() && w->hasAlpha()) { w->setData(WindowForceBackgroundContrastRole, QVariant(true)); m_backgroundContrastForced.append(w); } @@ -348,7 +348,7 @@ void SlidingPopupsEffect::slotWindowClosed(EffectWindow* w) // Tell other windowClosed() effects to ignore this window w->setData(WindowClosedGrabRole, QVariant::fromValue(static_cast(this))); w->setData(WindowForceBlurRole, true); - if (!w->data(WindowForceBackgroundContrastRole).isValid() && w->hasAlpha()) { + if (!w->data(WindowForceBackgroundContrastRole).toBool() && w->hasAlpha()) { w->setData(WindowForceBackgroundContrastRole, QVariant(true)); }