diff --git a/HellionChat/Ui/Components/MessageList.cs b/HellionChat/Ui/Components/MessageList.cs index 6024736..c0189da 100644 --- a/HellionChat/Ui/Components/MessageList.cs +++ b/HellionChat/Ui/Components/MessageList.cs @@ -99,7 +99,7 @@ internal sealed class MessageList // swaps between two differently sized faces), FontsEnabled and UseHellionFont // (both swap the face outright, and their two size fields default to the same // 12.75f -- so the fingerprint did not move while the glyph widths did). - private LayoutFingerprint BuildLayoutFingerprint(float contentWidth) + private LayoutFingerprint BuildLayoutFingerprint(Tab tab, float contentWidth) { var fonts = _fonts.EffectiveFontFingerprint(); return new LayoutFingerprint( @@ -112,6 +112,8 @@ internal sealed class MessageList Plugin.Config.FontsEnabled, Plugin.Config.UseHellionFont, Plugin.Config.ItalicEnabled, + Plugin.Config.Use24HourClock, + tab.DisplayTimestamp, (int)Plugin.Config.NameFormMode, (int)Plugin.Config.WorldSuffixMode, contentWidth, @@ -131,7 +133,7 @@ internal sealed class MessageList _fingerprintGates[tab.Identifier] = gate; } - if (!gate.ShouldInvalidate(BuildLayoutFingerprint(contentWidth), nowMs)) + if (!gate.ShouldInvalidate(BuildLayoutFingerprint(tab, contentWidth), nowMs)) return; using var messages = tab.Messages.GetReadOnly(3); diff --git a/HellionChat/Util/LayoutFingerprint.cs b/HellionChat/Util/LayoutFingerprint.cs index be2db40..f507d07 100644 --- a/HellionChat/Util/LayoutFingerprint.cs +++ b/HellionChat/Util/LayoutFingerprint.cs @@ -12,6 +12,8 @@ internal readonly record struct LayoutFingerprint( bool FontsEnabled, bool UseHellionFont, bool ItalicEnabled, + bool Use24Hour, + bool ShowTimestamp, int NameForm, int WorldSuffix, float Width, @@ -21,8 +23,17 @@ internal readonly record struct LayoutFingerprint( // Toggles: they land on a new value in one frame and stay there. Waiting on // them would leave the planner running against the previous density's // heights while the rows are already painted the new way. - internal (bool, bool, bool, bool, int, int) Discrete => - (Compact, FontsEnabled, UseHellionFont, ItalicEnabled, NameForm, WorldSuffix); + internal (bool, bool, bool, bool, bool, bool, int, int) Discrete => + ( + Compact, + FontsEnabled, + UseHellionFont, + ItalicEnabled, + Use24Hour, + ShowTimestamp, + NameForm, + WorldSuffix + ); } // Dragging a window edge or the Dalamud UI-scale slider moves the continuous