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