summaryrefslogtreecommitdiff
path: root/src/managers/XWaylandManager.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-02-29 17:23:44 +0000
committerVaxry <vaxry@vaxry.net>2024-02-29 17:23:44 +0000
commit1698d336f2511ee7c93d0a520c7ba3491c831e8d (patch)
treed674611ee46a3d78a12124b986764b29b2772eea /src/managers/XWaylandManager.cpp
parentfbba8757cb1fbc79cc4b7744826a5a4cfca9264a (diff)
core: fix crashes on access of deleted wlr_ surface
ref fixes #4893
Diffstat (limited to 'src/managers/XWaylandManager.cpp')
-rw-r--r--src/managers/XWaylandManager.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp
index 1704ee99..2dcb3bcc 100644
--- a/src/managers/XWaylandManager.cpp
+++ b/src/managers/XWaylandManager.cpp
@@ -107,6 +107,9 @@ std::string CHyprXWaylandManager::getTitle(CWindow* pWindow) {
return std::string(pWindow->m_uSurface.xwayland->title);
}
} else if (pWindow->m_uSurface.xdg) {
+ if (pWindow->m_bFadingOut || !pWindow->m_uSurface.xdg)
+ return "";
+
if (pWindow->m_uSurface.xdg->toplevel && pWindow->m_uSurface.xdg->toplevel->title) {
return std::string(pWindow->m_uSurface.xdg->toplevel->title);
}
@@ -128,6 +131,9 @@ std::string CHyprXWaylandManager::getAppIDClass(CWindow* pWindow) {
return std::string(pWindow->m_uSurface.xwayland->_class);
}
} else if (pWindow->m_uSurface.xdg) {
+ if (pWindow->m_bFadingOut || !pWindow->m_uSurface.xdg)
+ return "";
+
if (pWindow->m_uSurface.xdg->toplevel && pWindow->m_uSurface.xdg->toplevel->app_id) {
return std::string(pWindow->m_uSurface.xdg->toplevel->app_id);
}