mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-26 21:49:49 +01:00
monitor desc default workspace but working now (#2678)
* fix desc check * fixes crashes when nulptr
This commit is contained in:
parent
26579fa962
commit
29d017f54b
2 changed files with 10 additions and 6 deletions
|
@ -495,17 +495,14 @@ CMonitor* CCompositor::getMonitorFromName(const std::string& name) {
|
|||
return m.get();
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CMonitor* CCompositor::getMonitorFromDesc(const std::string& desc) {
|
||||
for (auto& m : m_vMonitors) {
|
||||
if (desc == m->output->description) {
|
||||
if (m->output->description && std::string(m->output->description).find(desc) == 0)
|
||||
return m.get();
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -2195,8 +2195,15 @@ void CConfigManager::removePluginConfig(HANDLE handle) {
|
|||
|
||||
std::string CConfigManager::getDefaultWorkspaceFor(const std::string& name) {
|
||||
for (auto other = m_dWorkspaceRules.begin(); other != m_dWorkspaceRules.end(); ++other) {
|
||||
if (other->isDefault && (other->monitor == name || (other->monitor.substr(0, 5) == "desc:" && g_pCompositor->getMonitorFromDesc(other->monitor.substr(5))->szName == name)))
|
||||
return other->workspaceString;
|
||||
if (other->isDefault) {
|
||||
if (other->monitor == name)
|
||||
return other->workspaceString;
|
||||
if (other->monitor.substr(0, 5) == "desc:") {
|
||||
auto monitor = g_pCompositor->getMonitorFromDesc(other->monitor.substr(5));
|
||||
if (monitor && monitor->szName == name)
|
||||
return other->workspaceString;
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue