diff options
| author | MightyPlaza <123664421+MightyPlaza@users.noreply.github.com> | 2023-07-09 21:10:35 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-09 23:10:35 +0200 |
| commit | d9f7f039e13b7d40c1d3e65809b65a96f0c68781 (patch) | |
| tree | de0e9dd2408646121ac43eef359fecf609235dd6 /src | |
| parent | b99ac063eae32995ba83047a4c5d4cb3490a4b10 (diff) | |
monitor desc support (#2670)
* monitor desc
* monitor desc
Diffstat (limited to 'src')
| -rw-r--r-- | src/Compositor.cpp | 10 | ||||
| -rw-r--r-- | src/Compositor.hpp | 4 | ||||
| -rw-r--r-- | src/config/ConfigManager.cpp | 6 |
3 files changed, 17 insertions, 3 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 50ea0b5d..89c0d08b 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -499,6 +499,16 @@ CMonitor* CCompositor::getMonitorFromName(const std::string& name) { return nullptr; } +CMonitor* CCompositor::getMonitorFromDesc(const std::string& desc) { + for (auto& m : m_vMonitors) { + if (desc == m->output->description) { + return m.get(); + } + } + + return nullptr; +} + CMonitor* CCompositor::getMonitorFromCursor() { const auto COORDS = Vector2D(m_sWLRCursor->x, m_sWLRCursor->y); diff --git a/src/Compositor.hpp b/src/Compositor.hpp index e4f5483f..55633fc6 100644 --- a/src/Compositor.hpp +++ b/src/Compositor.hpp @@ -28,8 +28,7 @@ #include "hyprerror/HyprError.hpp" #include "plugins/PluginSystem.hpp" -enum eManagersInitStage -{ +enum eManagersInitStage { STAGE_PRIORITY = 0, STAGE_LATE }; @@ -125,6 +124,7 @@ class CCompositor { CMonitor* getMonitorFromID(const int&); CMonitor* getMonitorFromName(const std::string&); + CMonitor* getMonitorFromDesc(const std::string&); CMonitor* getMonitorFromCursor(); CMonitor* getMonitorFromVector(const Vector2D&); void removeWindowFromVectorSafe(CWindow*); diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 2cf6a5c4..e6894865 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -2106,7 +2106,11 @@ void CConfigManager::addParseError(const std::string& err) { } CMonitor* CConfigManager::getBoundMonitorForWS(const std::string& wsname) { - return g_pCompositor->getMonitorFromName(getBoundMonitorStringForWS(wsname)); + auto monitor = getBoundMonitorStringForWS(wsname); + if (monitor.substr(0, 5) == "desc:") + return g_pCompositor->getMonitorFromDesc(monitor.substr(5)); + else + return g_pCompositor->getMonitorFromName(monitor); } std::string CConfigManager::getBoundMonitorStringForWS(const std::string& wsname) { |
