[OSD] Fix animation stutter
ClosedPublic

Authored by rooty on Mar 6 2019, 2:25 PM.

Details

Summary

This patch resolves the choppy OSD fadeout problem described in bug 402352 that appeared after the update to Qt 5.12.

BUG: 402352
FIXED-IN: 5.15.3

Test Plan

Before:

After:

Diff Detail

Repository
R120 Plasma Workspace
Branch
osd-effect-fix (branched from master)
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 9238
Build 9256: arc lint + arc unit
rooty created this revision.Mar 6 2019, 2:25 PM
Restricted Application added a project: Plasma. · View Herald TranscriptMar 6 2019, 2:25 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
rooty requested review of this revision.Mar 6 2019, 2:25 PM
rooty edited the summary of this revision. (Show Details)Mar 6 2019, 2:26 PM
rooty edited the test plan for this revision. (Show Details)
rooty added reviewers: Plasma, VDG.
davidedmundson accepted this revision.Mar 6 2019, 3:00 PM
This revision is now accepted and ready to land.Mar 6 2019, 3:00 PM
ngraham accepted this revision.Mar 6 2019, 3:14 PM
ngraham added a subscriber: ngraham.

Land in 5.15 and merge to master, please!

broulik added a subscriber: broulik.Mar 6 2019, 3:17 PM

That removes the "slowly fade out feature of the OSD", please then also remove all uses of that property

Also, the Animation is now also entirely unused as the opacity of the window is no longer changed? Please clean this up.

abetts added a subscriber: abetts.Mar 6 2019, 3:19 PM

+1 on visuals

rooty added a comment.Mar 6 2019, 3:32 PM

That removes the "slowly fade out feature of the OSD", please then also remove all uses of that property

There don't seem to be any other instances of it being used?

Also, the Animation is now also entirely unused as the opacity of the window is no longer changed? Please clean this up.

I don't understand, could you elaborate please?

There don't seem to be any other instances of it being used?

plasma-workspace/shell/osd.cpp

It also seems kscreen has a copy of thhis OSD which also needs fixing, and please also make sure the lockscreen doesn't break as it also embeds an OSD item.

I don't understand, could you elaborate please?

The aforementioned code checks if an animateOpacity property is present, if so, it changes the window opacity which will then be animated. If that property is gone, the code just sets the window visible which will be animated by KWin. As such, the animation in the osd.qml is entirely unused now.

rooty added a comment.Mar 6 2019, 3:37 PM

plasma-workspace/shell/osd.cpp

It also seems kscreen has a copy of thhis OSD which also needs fixing, and please also make sure the lockscreen doesn't break as it also embeds an OSD item.

It won't affect the lock screen. (The lock screen was never affected by the bug either, actually)

The aforementioned code checks if an animateOpacity property is present, if so, it changes the window opacity which will then be animated. If that property is gone, the code just sets the window visible which will be animated by KWin. As such, the animation in the osd.qml is entirely unused now.

Oh God I'm so sorry I completely forgot about Kwin. I could just remove the animation entirely then?

rooty updated this revision to Diff 53286.Mar 6 2019, 3:38 PM

Remove unused animation code

rooty added a comment.Mar 6 2019, 3:40 PM

How's that? It actually reminds me of the notification widget with these changes in place

This revision was automatically updated to reflect the committed changes.