diff --git a/effects/kscreen/kscreen.cpp b/effects/kscreen/kscreen.cpp --- a/effects/kscreen/kscreen.cpp +++ b/effects/kscreen/kscreen.cpp @@ -101,13 +101,25 @@ { switch (m_state) { case StateFadingOut: - data.multiplyOpacity(1.0 - m_timeLine.currentValue()); + if (w->hasAlpha()) { + data.multiplyOpacity(1.0 - m_timeLine.currentValue()); + } else { + data.multiplyBrightness(1.0 - m_timeLine.currentValue()); + } break; case StateFadedOut: - data.multiplyOpacity(0.0); + if (w->hasAlpha()) { + data.multiplyOpacity(0.0); + } else { + data.multiplyBrightness(0.0); + } break; case StateFadingIn: - data.multiplyOpacity(m_timeLine.currentValue()); + if (w->hasAlpha()) { + data.multiplyOpacity(m_timeLine.currentValue()); + } else { + data.multiplyBrightness(m_timeLine.currentValue()); + } break; default: // no adjustment