Track surface creation/destruction inside wayland window effects
ClosedPublic

Authored by davidedmundson on May 2 2019, 1:04 AM.

Details

Summary

The wayland surface is destroyed and recreated after every hide/show. As
it's a new surface, it needs a new blur attached and applied.

The best hook is the expose event on the window.

The current event filtering in Breeze operates on the QWidget which
doesn't match the window. Fixing there still introduces a second layer
of event filters on another object once the window is known.

Whilst it could be done in breeze, but for API clients should just call
KWindowEffects once per window and forget about it regardless of
underlying surfaces. It also fixes all other wayland users of the call
at once.

This fixes blur on context menus opened a second time.

BUG: 398899

Test Plan

Turned on the show transparency effect in breeze
Opened a context menu multiple times
Observed that it was transparent and blurred

Diff Detail

Repository
R130 Frameworks integration plugin using KWayland
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
davidedmundson created this revision.May 2 2019, 1:04 AM
Restricted Application added a project: Plasma. · View Herald TranscriptMay 2 2019, 1:04 AM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
davidedmundson requested review of this revision.May 2 2019, 1:04 AM
zzag accepted this revision.May 2 2019, 7:36 AM
This revision is now accepted and ready to land.May 2 2019, 7:36 AM
This revision was automatically updated to reflect the committed changes.