From 77ceffceef1bb7d4b3819dbf55d21082a6f087a7 Mon Sep 17 00:00:00 2001 From: Infi Date: Mon, 22 Apr 2024 05:10:24 +0200 Subject: [PATCH] Fix setting conditions not working --- ChatTwo/MessageManager.cs | 1 - ChatTwo/Ui/Settings.cs | 20 ++++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ChatTwo/MessageManager.cs b/ChatTwo/MessageManager.cs index c2baa68..95199b6 100644 --- a/ChatTwo/MessageManager.cs +++ b/ChatTwo/MessageManager.cs @@ -112,7 +112,6 @@ internal class MessageManager : IDisposable } public (SeString? Sender, SeString? Message) LastMessage = (null, null); - private void ChatMessage(XivChatType type, uint senderId, SeString sender, SeString message) { var chatCode = new ChatCode((ushort)type); diff --git a/ChatTwo/Ui/Settings.cs b/ChatTwo/Ui/Settings.cs index 2e21e6f..f84a4bb 100755 --- a/ChatTwo/Ui/Settings.cs +++ b/ChatTwo/Ui/Settings.cs @@ -143,6 +143,16 @@ public sealed class SettingsWindow : Window if (!save) return; + // calculate all conditions before updating config + var hideChanged = !Mutable.HideChat && Mutable.HideChat != Plugin.Config.HideChat; + var languageChanged = Mutable.LanguageOverride != Plugin.Config.LanguageOverride; + var fontChanged = Mutable.GlobalFont != Plugin.Config.GlobalFont + || Mutable.JapaneseFont != Plugin.Config.JapaneseFont + || Mutable.ExtraGlyphRanges != Plugin.Config.ExtraGlyphRanges; + var fontSizeChanged = Math.Abs(Mutable.FontSize - Plugin.Config.FontSize) > 0.001 + || Math.Abs(Mutable.JapaneseFontSize - Plugin.Config.JapaneseFontSize) > 0.001 + || Math.Abs(Mutable.SymbolsFontSize - Plugin.Config.SymbolsFontSize) > 0.001; + Plugin.Config.UpdateFrom(Mutable); // save after 60 frames have passed, which should hopefully not @@ -150,19 +160,13 @@ public sealed class SettingsWindow : Window Plugin.DeferredSaveFrames = 60; Plugin.MessageManager.FilterAllTabs(false); - var fontChanged = Mutable.GlobalFont != Plugin.Config.GlobalFont - || Mutable.JapaneseFont != Plugin.Config.JapaneseFont - || Mutable.ExtraGlyphRanges != Plugin.Config.ExtraGlyphRanges; - var fontSizeChanged = Math.Abs(Mutable.FontSize - Plugin.Config.FontSize) > 0.001 - || Math.Abs(Mutable.JapaneseFontSize - Plugin.Config.JapaneseFontSize) > 0.001 - || Math.Abs(Mutable.SymbolsFontSize - Plugin.Config.SymbolsFontSize) > 0.001; if (fontChanged || fontSizeChanged) Plugin.FontManager.BuildFonts(); - if (Mutable.LanguageOverride != Plugin.Config.LanguageOverride) + if (languageChanged) Plugin.LanguageChanged(Plugin.Interface.UiLanguage); - if (!Mutable.HideChat && Mutable.HideChat != Plugin.Config.HideChat) + if (hideChanged) GameFunctions.GameFunctions.SetChatInteractable(true); Initialise();