summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers')
-rw-r--r--src/managers/XWaylandManager.cpp22
-rw-r--r--src/managers/XWaylandManager.hpp1
2 files changed, 20 insertions, 3 deletions
diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp
index d17c1e5c..bbd8f9f0 100644
--- a/src/managers/XWaylandManager.cpp
+++ b/src/managers/XWaylandManager.cpp
@@ -54,19 +54,35 @@ std::string CHyprXWaylandManager::getTitle(CWindow* pWindow) {
if (pWindow->m_uSurface.xwayland) {
return std::string(pWindow->m_uSurface.xwayland->title);
}
+ } else if (pWindow->m_uSurface.xdg) {
+ if (pWindow->m_uSurface.xdg->toplevel) {
+ return std::string(pWindow->m_uSurface.xdg->toplevel->title);
+ }
} else {
return "";
}
+ } catch (std::logic_error& e) {
+ Debug::log(ERR, "Error in getTitle: %s", e.what());
+ }
- if (pWindow->m_uSurface.xdg) {
+ return "";
+}
+
+std::string CHyprXWaylandManager::getAppIDClass(CWindow* pWindow) {
+ try {
+ if (pWindow->m_bIsX11) {
+ if (pWindow->m_uSurface.xwayland) {
+ return std::string(pWindow->m_uSurface.xwayland->_class);
+ }
+ } else if (pWindow->m_uSurface.xdg) {
if (pWindow->m_uSurface.xdg->toplevel) {
- return std::string(pWindow->m_uSurface.xdg->toplevel->title);
+ return std::string(pWindow->m_uSurface.xdg->toplevel->app_id);
}
} else {
return "";
}
} catch (std::logic_error& e) {
- Debug::log(ERR, "Error in getTitle: %s", e.what());
+ Debug::log(ERR, "Error in getAppIDClass: %s", e.what());
}
return "";
diff --git a/src/managers/XWaylandManager.hpp b/src/managers/XWaylandManager.hpp
index be7221d9..00de8139 100644
--- a/src/managers/XWaylandManager.hpp
+++ b/src/managers/XWaylandManager.hpp
@@ -14,6 +14,7 @@ public:
void activateSurface(wlr_surface*, bool);
void getGeometryForWindow(CWindow*, wlr_box*);
std::string getTitle(CWindow*);
+ std::string getAppIDClass(CWindow*);
void sendCloseWindow(CWindow*);
void setWindowSize(CWindow*, const Vector2D&);
void setWindowStyleTiled(CWindow*, uint32_t);