From ac7a26edd7473f4a3176953215f821bd257980af Mon Sep 17 00:00:00 2001 From: Baconadors <27475467+Baconadors@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:15:41 -0500 Subject: [PATCH] fix: SettingsHandler magic filter fixes Prevents opening spell filters when expected number of spells is already present in spellbook and fixes closing of filter panel before function exits. --- osr/handlers/settingshandler.simba | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/osr/handlers/settingshandler.simba b/osr/handlers/settingshandler.simba index f42cf2c6..b2a52c51 100644 --- a/osr/handlers/settingshandler.simba +++ b/osr/handlers/settingshandler.simba @@ -446,15 +446,15 @@ function TSettingsHandler.DisableMagicFilters(out actionsTaken: Int32): Boolean; var button: TRSButton; begin - Self.DebugLn('DisableMagicFilters -> Attempting to disable magic filters'); - if not Magic.OpenFilters() then - begin - Self.DebugLn('DisableMagicFilters -> Failed to open magic filters'); - Exit; - end; + Self.DebugLn('DisableMagicFilters -> Checking magic filters'); if not Magic.IsFiltered() then begin Self.DebugLn('DisableMagicFilters -> No filters active'); + Exit(True); + end; + if not Magic.OpenFilters() then + begin + Self.DebugLn('DisableMagicFilters -> Failed to open magic filters'); Exit; end; for button in Magic.GetFilterButtons() do @@ -466,9 +466,10 @@ begin Inc(actionsTaken); end; end; - Result := WaitUntil(Magic.CloseFilters(), 400, 3000); -end; - + Self.DebugLn('DisableMagicFilters -> ' + ToStr(actionsTaken) + ' filter(s) disabled, closing panel'); + Magic.CloseFilters(); + Result := WaitUntil(not Magic.IsFiltered(), 300, 3000); +end; (* ## SettingsHandler.FixScreenPostResolutionChange() ```pascal