Fix General tab being unselected on language change

This commit is contained in:
Haselnussbomber 2025-09-05 03:27:14 +02:00
parent 950c69330b
commit 0e72153bae
No known key found for this signature in database
GPG key ID: BB905BB49E7295D1

View file

@ -23,7 +23,7 @@ internal sealed class SettingsWindow : Window
private string searchInput = string.Empty; private string searchInput = string.Empty;
private bool isSearchInputPrefilled = false; private bool isSearchInputPrefilled = false;
private SettingsTab setActiveTab = null!; private SettingsTab? setActiveTab;
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="SettingsWindow"/> class. /// Initializes a new instance of the <see cref="SettingsWindow"/> class.
@ -53,6 +53,8 @@ internal sealed class SettingsWindow : Window
private static string Title => Loc.Localize("DalamudSettingsHeader", "Dalamud Settings") + "###XlSettings2"; private static string Title => Loc.Localize("DalamudSettingsHeader", "Dalamud Settings") + "###XlSettings2";
private SettingsTab? CurrentlyOpenTab => this.tabs.FirstOrDefault(tab => tab.IsOpen);
/// <summary> /// <summary>
/// Open the settings window to the tab specified by <paramref name="kind"/>. /// Open the settings window to the tab specified by <paramref name="kind"/>.
/// </summary> /// </summary>
@ -150,7 +152,7 @@ internal sealed class SettingsWindow : Window
public override void Draw() public override void Draw()
{ {
ImGui.SetNextItemWidth(-1); ImGui.SetNextItemWidth(-1);
using (ImRaii.Disabled(this.tabs.OfType<SettingsTabAbout>().Single().IsOpen)) using (ImRaii.Disabled(this.CurrentlyOpenTab is SettingsTabAbout))
ImGui.InputTextWithHint("###searchInput"u8, Loc.Localize("DalamudSettingsSearchPlaceholder", "Search for settings..."), ref this.searchInput, 100, ImGuiInputTextFlags.AutoSelectAll); ImGui.InputTextWithHint("###searchInput"u8, Loc.Localize("DalamudSettingsSearchPlaceholder", "Search for settings..."), ref this.searchInput, 100, ImGuiInputTextFlags.AutoSelectAll);
ImGui.Spacing(); ImGui.Spacing();
@ -326,5 +328,6 @@ internal sealed class SettingsWindow : Window
private void OnLocalizationChanged(string langCode) private void OnLocalizationChanged(string langCode)
{ {
this.WindowName = Title; this.WindowName = Title;
this.setActiveTab = this.CurrentlyOpenTab;
} }
} }