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