diff options
author | trianta <[email protected]> | 2024-11-03 08:59:46 -0600 |
---|---|---|
committer | GitHub <[email protected]> | 2024-11-03 14:59:46 +0000 |
commit | 5833abbbd11dca718379863cb2fb5c2423f5d7e7 (patch) | |
tree | 4b337ba08e57fdf78113559115382fe276a88d16 /src/xwayland/XWM.cpp | |
parent | 514e0ff509f3bf4c98515f08216ac2eeb8797517 (diff) | |
download | Hyprland-5833abbbd11dca718379863cb2fb5c2423f5d7e7.tar.gz Hyprland-5833abbbd11dca718379863cb2fb5c2423f5d7e7.zip |
xwayland: minor fixups for stability (#8323)
* xwayland: add inline safe closing of fds and fix LOCK_FILE_MODE permissions
* xwayland: auto recreate xwayland instance if it crashes
* xwayland: delay auto-restart until later
Diffstat (limited to 'src/xwayland/XWM.cpp')
-rw-r--r-- | src/xwayland/XWM.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/xwayland/XWM.cpp b/src/xwayland/XWM.cpp index 248813bf..87fc34e4 100644 --- a/src/xwayland/XWM.cpp +++ b/src/xwayland/XWM.cpp @@ -13,6 +13,7 @@ #include "../defines.hpp" #include "../Compositor.hpp" #include "../protocols/core/Seat.hpp" +#include "../managers/eventLoop/EventLoopManager.hpp" #include "../managers/SeatManager.hpp" #include "../protocols/XWaylandShell.hpp" #include "../protocols/core/Compositor.hpp" @@ -691,6 +692,8 @@ int CXWM::onEvent(int fd, uint32_t mask) { Debug::log(CRIT, "XWayland has yeeten the xwm off?!"); g_pXWayland->pWM.reset(); g_pXWayland->pServer.reset(); + // Attempt to create fresh instance + g_pEventLoopManager->doLater([]() { g_pXWayland = std::make_unique<CXWayland>(true); }); return 0; } |