summaryrefslogtreecommitdiff
path: root/src/managers/XWaylandManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-24 17:53:50 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-24 17:53:50 +0200
commitc35517d44e983524760109ea7864c2ace91e5f9e (patch)
tree1f03f2200d676b04210e039a41f59e6ebc729f01 /src/managers/XWaylandManager.cpp
parent86bb95c125563300a50973ab50eec44c2943b9d1 (diff)
fixes for xwayland popups, autofloat pop-up and task_dialog
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;