summaryrefslogtreecommitdiff
path: root/src/managers/ProtocolManager.cpp
diff options
context:
space:
mode:
authorIkalco <73481042+ikalco@users.noreply.github.com>2024-07-24 12:07:36 -0500
committerGitHub <noreply@github.com>2024-07-24 19:07:36 +0200
commit3e543d2ce8ba64abb4d226dbb88c4513474501cf (patch)
treed340935c65520e293a73623c148219993e38779b /src/managers/ProtocolManager.cpp
parent735e3c6c56d22059ee6340c0327e4b5a9154f013 (diff)
core: Properly shutdown wl display (#7018)
* correctly destroy wayland globals * properly shutdown and cleanup hyprland * appease the nitpick gods and some comments
Diffstat (limited to 'src/managers/ProtocolManager.cpp')
-rw-r--r--src/managers/ProtocolManager.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp
index 5a44680f..ef2260cc 100644
--- a/src/managers/ProtocolManager.cpp
+++ b/src/managers/ProtocolManager.cpp
@@ -166,3 +166,57 @@ CProtocolManager::CProtocolManager() {
m_pGlobalShortcutsProtocolManager = std::make_unique<CGlobalShortcutsProtocolManager>();
m_pScreencopyProtocolManager = std::make_unique<CScreencopyProtocolManager>();
}
+
+CProtocolManager::~CProtocolManager() {
+ // this is dumb but i don't want to replace all 600 PROTO with the right thing
+
+ // Output
+ PROTO::outputs.clear();
+
+ // Core
+ PROTO::seat.reset();
+ PROTO::data.reset();
+ PROTO::compositor.reset();
+ PROTO::subcompositor.reset();
+ PROTO::shm.reset();
+
+ // Extensions
+ PROTO::viewport.reset();
+ PROTO::tearing.reset();
+ PROTO::fractional.reset();
+ PROTO::xdgOutput.reset();
+ PROTO::cursorShape.reset();
+ PROTO::idleInhibit.reset();
+ PROTO::relativePointer.reset();
+ PROTO::xdgDecoration.reset();
+ PROTO::alphaModifier.reset();
+ PROTO::gamma.reset();
+ PROTO::foreignToplevel.reset();
+ PROTO::pointerGestures.reset();
+ PROTO::foreignToplevelWlr.reset();
+ PROTO::shortcutsInhibit.reset();
+ PROTO::textInputV3.reset();
+ PROTO::constraints.reset();
+ PROTO::outputPower.reset();
+ PROTO::activation.reset();
+ PROTO::idle.reset();
+ PROTO::sessionLock.reset();
+ PROTO::ime.reset();
+ PROTO::virtualKeyboard.reset();
+ PROTO::virtualPointer.reset();
+ PROTO::outputManagement.reset();
+ PROTO::serverDecorationKDE.reset();
+ PROTO::focusGrab.reset();
+ PROTO::tablet.reset();
+ PROTO::layerShell.reset();
+ PROTO::presentation.reset();
+ PROTO::xdgShell.reset();
+ PROTO::dataWlr.reset();
+ PROTO::primarySelection.reset();
+ PROTO::xwaylandShell.reset();
+
+ PROTO::lease.reset();
+ PROTO::sync.reset();
+ PROTO::mesaDRM.reset();
+ PROTO::linuxDma.reset();
+}