[effects/wobblywindows] Fix visual artifacts caused by maximize effect
ClosedPublic

Authored by zzag on Oct 5 2018, 9:30 AM.

Details

Summary

If one wants to drag a maximized window while he or she has enabled both
the Wobbly Windows and the Maximize effect, visual artifacts can be
shown.

When the Maximize effect animates transition from maximize to restore,
some parts of the window can overshoot repaint regions(because of
wobbliness), leaving us with the visual artifacts.

To fix that, we have to take into account current scale and translation
when calculating dirty region in the Wobbly Windows effect.

BUG: 370612
FIXED-IN: 5.14.1

Test Plan

When dragging maximized windows, there are no visual artifacts anymore.

Diff Detail

Repository
R108 KWin
Branch
effects-wobbly-windows-drag-maximized-windows-visual-artifacts
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 3516
Build 3534: arc lint + arc unit
zzag created this revision.Oct 5 2018, 9:30 AM
Restricted Application added a project: KWin. · View Herald TranscriptOct 5 2018, 9:30 AM
Restricted Application added a subscriber: kwin. · View Herald Transcript
zzag requested review of this revision.Oct 5 2018, 9:30 AM
zzag added a comment.Oct 5 2018, 9:31 AM

I don't have multiple monitor setup, but I'm pretty sure that there won't be any issues.

zzag edited the summary of this revision. (Show Details)Oct 5 2018, 9:33 AM
zzag retitled this revision from [effects/wobblywindows] Fix visual artifacts when dragging maximized windows to [effects/wobblywindows] Fix visual artifacts caused by maximize effect.Oct 5 2018, 9:38 AM
abetts added a subscriber: abetts.Oct 5 2018, 2:00 PM

Before and after?

zzag added a comment.Oct 6 2018, 11:25 AM

@abetts

Before:

After:

abetts added a comment.Oct 6 2018, 6:24 PM

+1 from the VDG

davidedmundson accepted this revision.Oct 9 2018, 10:50 AM
This revision is now accepted and ready to land.Oct 9 2018, 10:50 AM
zzag edited the summary of this revision. (Show Details)Oct 9 2018, 11:00 AM
This revision was automatically updated to reflect the committed changes.