mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-06 07:01:57 -07:00
compositor: move wl_display_destroy_clients (#5498)
if enough clients are open when destructing the compositor destroying clients will emit a wl_surface_unmap that a WLListener catches and doing so it calls listener_unmapLayerSurface that tries to iterate over input manager that is already destroyed, move the destruction of clients above g_pInputManager.reset() and removeAllSignals() to ensure we dont segfault at exit.
This commit is contained in:
@@ -419,12 +419,10 @@ void CCompositor::cleanup() {
|
|||||||
g_pXWaylandManager->m_sWLRXWayland = nullptr;
|
g_pXWaylandManager->m_sWLRXWayland = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wl_display_destroy_clients(g_pCompositor->m_sWLDisplay);
|
||||||
removeAllSignals();
|
removeAllSignals();
|
||||||
|
|
||||||
g_pInputManager.reset();
|
g_pInputManager.reset();
|
||||||
|
|
||||||
wl_display_destroy_clients(g_pCompositor->m_sWLDisplay);
|
|
||||||
|
|
||||||
g_pDecorationPositioner.reset();
|
g_pDecorationPositioner.reset();
|
||||||
g_pCursorManager.reset();
|
g_pCursorManager.reset();
|
||||||
g_pPluginSystem.reset();
|
g_pPluginSystem.reset();
|
||||||
|
Reference in New Issue
Block a user