diff --git a/effects/magnifier/magnifier.cpp b/effects/magnifier/magnifier.cpp index 4aced41fb9..d1f55cdaa1 100644 --- a/effects/magnifier/magnifier.cpp +++ b/effects/magnifier/magnifier.cpp @@ -58,6 +58,7 @@ MagnifierEffect::MagnifierEffect() effects->registerGlobalShortcut(Qt::META + Qt::Key_0, a); connect(effects, &EffectsHandler::mouseChanged, this, &MagnifierEffect::slotMouseChanged); + connect(effects, &EffectsHandler::windowDamaged, this, &MagnifierEffect::slotWindowDamaged); reconfigure(ReconfigureAll); } @@ -332,6 +333,13 @@ void MagnifierEffect::slotMouseChanged(const QPoint& pos, const QPoint& old, effects->addRepaintFull(); } +void MagnifierEffect::slotWindowDamaged() +{ + if (isActive()) { + effects->addRepaint(magnifierArea()); + } +} + bool MagnifierEffect::isActive() const { return zoom != 1.0 || zoom != target_zoom; diff --git a/effects/magnifier/magnifier.h b/effects/magnifier/magnifier.h index 28deb3499f..00b3158297 100644 --- a/effects/magnifier/magnifier.h +++ b/effects/magnifier/magnifier.h @@ -50,6 +50,7 @@ private Q_SLOTS: void slotMouseChanged(const QPoint& pos, const QPoint& old, Qt::MouseButtons buttons, Qt::MouseButtons oldbuttons, Qt::KeyboardModifiers modifiers, Qt::KeyboardModifiers oldmodifiers); + void slotWindowDamaged(); void destroyPixmap(); private: QRect magnifierArea(QPoint pos = cursorPos()) const;