Fix setting conditions not working

This commit is contained in:
Infi
2024-04-22 05:10:24 +02:00
parent b4cb73dd0a
commit 77ceffceef
2 changed files with 12 additions and 9 deletions
-1
View File
@@ -112,7 +112,6 @@ internal class MessageManager : IDisposable
} }
public (SeString? Sender, SeString? Message) LastMessage = (null, null); public (SeString? Sender, SeString? Message) LastMessage = (null, null);
private void ChatMessage(XivChatType type, uint senderId, SeString sender, SeString message) private void ChatMessage(XivChatType type, uint senderId, SeString sender, SeString message)
{ {
var chatCode = new ChatCode((ushort)type); var chatCode = new ChatCode((ushort)type);
+12 -8
View File
@@ -143,6 +143,16 @@ public sealed class SettingsWindow : Window
if (!save) if (!save)
return; 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); Plugin.Config.UpdateFrom(Mutable);
// save after 60 frames have passed, which should hopefully not // save after 60 frames have passed, which should hopefully not
@@ -150,19 +160,13 @@ public sealed class SettingsWindow : Window
Plugin.DeferredSaveFrames = 60; Plugin.DeferredSaveFrames = 60;
Plugin.MessageManager.FilterAllTabs(false); 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) if (fontChanged || fontSizeChanged)
Plugin.FontManager.BuildFonts(); Plugin.FontManager.BuildFonts();
if (Mutable.LanguageOverride != Plugin.Config.LanguageOverride) if (languageChanged)
Plugin.LanguageChanged(Plugin.Interface.UiLanguage); Plugin.LanguageChanged(Plugin.Interface.UiLanguage);
if (!Mutable.HideChat && Mutable.HideChat != Plugin.Config.HideChat) if (hideChanged)
GameFunctions.GameFunctions.SetChatInteractable(true); GameFunctions.GameFunctions.SetChatInteractable(true);
Initialise(); Initialise();