[platforms/x11] Properly unload effects on X11
ClosedPublic

Authored by zzag on Feb 20 2019, 11:33 AM.

Details

Summary

When Compositor finishes compositing, it destroys EffectsHandlerImpl,
which in its turn tries to unload all effects. But there is a problem...

EffectsHandlerImpl has platform-specific hooks to ungrab keyboard and
also stop mouse interception. Given that any call made to a virtual function
in the destructor of a base class(EffectsHandlerImpl) won't go to a derived
class(EffectsHandlerImplX11), keyboard won't be ungrabbed even if effect
that grabbed it is already gone.

BUG: 399572

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.Feb 20 2019, 11:33 AM
Restricted Application added a project: KWin. · View Herald TranscriptFeb 20 2019, 11:33 AM
Restricted Application added a subscriber: kwin. · View Herald Transcript
zzag requested review of this revision.Feb 20 2019, 11:33 AM
zzag retitled this revision from [platforms/x11] Manually unload effects to [platforms/x11] Properly unload effects on X11.Feb 20 2019, 11:39 AM
zzag edited the summary of this revision. (Show Details)Mar 1 2019, 9:33 AM
davidedmundson accepted this revision.Mar 8 2019, 2:04 PM
This revision is now accepted and ready to land.Mar 8 2019, 2:04 PM
This revision was automatically updated to reflect the committed changes.