From f44c478a3676a80e8083695f14c0822423a54fbb Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Mon, 9 May 2022 18:31:24 -0400
Subject: [PATCH] Backport: SL-15383 Controls table was empty after canceling
 advanced graphical settings

Also causes crashes on SearchableControl::setHighlighted due to views not being there
---
 indra/newview/llfloaterpreference.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index b5ad102a288..471ee8249b9 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -3458,10 +3458,15 @@ void LLPanelPreferenceControls::cancel()
         if (mConflictHandler[i].hasUnsavedChanges())
         {
             mConflictHandler[i].clear();
-        }
+			if (mEditingMode == i)
+			{
+				// cancel() can be called either when preferences floater closes
+				// or when child floater closes (like advanced graphical settings)
+				// in which case we need to clear and repopulate table
+				regenerateControls();
+			}
+		}
     }
-    pControlsTable->clearRows();
-    pControlsTable->clearColumns();
 }
 
 void LLPanelPreferenceControls::saveSettings()
-- 
GitLab