Track surface creation/destruction inside wayland window effects

Authored by davidedmundson on May 2 2019, 12:33 AM.

Description

Track surface creation/destruction inside wayland window effects

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, clients should ideally just call
KWindowEffects once per window and forget about it regardless of
the underlying state. 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

Reviewers: KWin

Subscribers: plasma-devel

Tags: Plasma

Differential Revision: https://phabricator.kde.org/D20951

Details