summaryrefslogtreecommitdiff
path: root/src/managers/XWaylandManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers/XWaylandManager.cpp')
-rw-r--r--src/managers/XWaylandManager.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp
index 9efefc75..5e8e9680 100644
--- a/src/managers/XWaylandManager.cpp
+++ b/src/managers/XWaylandManager.cpp
@@ -145,6 +145,17 @@ bool CHyprXWaylandManager::shouldBeFloated(CWindow* pWindow) {
return true;
}
+ if (pWindow->m_uSurface.xwayland->role) {
+ try {
+ std::string winrole = std::string(pWindow->m_uSurface.xwayland->role);
+ if (winrole.find("pop-up") != std::string::npos || winrole.find("task_dialog") != std::string::npos) {
+ return true;
+ }
+ } catch (std::exception& e) {
+ Debug::log(ERR, "Error in shouldBeFloated, winrole threw %s", e.what());
+ }
+ }
+
if (pWindow->m_uSurface.xwayland->modal) {
pWindow->m_bIsModal = true;
return true;