Skip to content

Ensure that shadows are destroyed after decorated windows

Vlad Zahorodnii requested to merge work/disappearing-shadows into Plasma/5.19

The order in which the underlying window and the shadow are destroyed is undefined. In most cases, the shadow is destroyed after the window, but in rare cases it may be vice versa, for example it's the case with popup menus in Dolphin. If the shadow is destroyed before the window, then the window will be shadowless when the compositor animates it.

The only way to guarantee that the shadow is destroyed after the window is to create a parent-child relationship between two.

Given that the widget and the window have different lifetimes, we have to be extra careful with keeping dangling pointers out of _shadows.

Merge request reports