Skip to content

Fix crash during PanelShadows teardown on Wayland

Vlad Zahorodnii requested to merge work/panel-shadows-crash into master

Platform-specific implementation of KWindowShadow::destroy() may call QWindow::requestUpdate to propagate the changes to the compositor.

The issue is that the QWindow checks if the requestUpdate() method has been called on the main thread. Therefore, the qApp singleton must be valid at the invocation time.

Currently, the panel shadows singleton doesn't register any cleanup function or connect to the QCoreApplication::aboutToQuick signal to get notified when it's the time to clean up shadows. It is destroyed from __run_exit_handlers().

Merge request reports