[wayland] Check presence of the inhibitor object when a client is registered in IdleInhibition
ClosedPublic

Authored by zzag on Nov 28 2018, 11:25 PM.

Details

Summary

Some applications are not able to inhibit the idle behavior because
each of them creates an inhibitor object before the corresponding
ShellClient object becomes ready for painting.

BUG: 401499
FIXED-IN: 5.15.0

Test Plan

idle-inhibit client (from wlroots/examples) works.

Diff Detail

Repository
R108 KWin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
zzag created this revision.Nov 28 2018, 11:25 PM
Restricted Application added a project: KWin. · View Herald TranscriptNov 28 2018, 11:25 PM
Restricted Application added a subscriber: kwin. · View Herald Transcript
zzag requested review of this revision.Nov 28 2018, 11:25 PM
zzag retitled this revision from [wayland] Check presence of the inhibit object when a client is registered in IdleInhibition to [wayland] Check presence of the inhibitor object when a client is registered in IdleInhibition.Nov 28 2018, 11:33 PM
davidedmundson added inline comments.
idle_inhibition.cpp
47

You're right on where the problem is, good work analysing.

But this TODO is still valid. From the spec we should only apply the inhibition when the surface is visible.

This is an OK short term fix (if you leave this one line), but when we do it properly we'll have to move it all around.

zzag updated this revision to Diff 46439.Nov 29 2018, 12:15 AM

TODO comment

zzag added inline comments.Nov 29 2018, 12:15 AM
idle_inhibition.cpp
47

I probably misunderstood this TODO comment.

graesslin accepted this revision.Nov 29 2018, 3:46 PM
This revision is now accepted and ready to land.Nov 29 2018, 3:46 PM
This revision was automatically updated to reflect the committed changes.