From 40201a760acd7c5ca10f27e7d0fdeb71c20df89f Mon Sep 17 00:00:00 2001
From: thejch <66577496+thejch@users.noreply.github.com>
Date: Fri, 3 May 2024 18:18:04 -0700
Subject: [PATCH] workspacerule: Fix monitor settings being deleted when
 merging ws rules (#5864)

* fix deleting monitor settings when merging rules

* use empty and workspace invalid
---
 src/config/ConfigManager.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 652a063c4..c6c0ceaf8 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -993,6 +993,15 @@ SWorkspaceRule CConfigManager::getWorkspaceRuleFor(PHLWORKSPACE pWorkspace) {
 SWorkspaceRule CConfigManager::mergeWorkspaceRules(const SWorkspaceRule& rule1, const SWorkspaceRule& rule2) {
     SWorkspaceRule mergedRule = rule1;
 
+    if (rule1.monitor.empty())
+        mergedRule.monitor = rule2.monitor;
+    if (rule1.workspaceString.empty())
+        mergedRule.workspaceString = rule2.workspaceString;
+    if (rule1.workspaceName.empty())
+        mergedRule.workspaceName = rule2.workspaceName;
+    if (rule1.workspaceId == WORKSPACE_INVALID)
+        mergedRule.workspaceId = rule2.workspaceId;
+
     if (rule2.isDefault)
         mergedRule.isDefault = true;
     if (rule2.isPersistent)