Pinning window disables close on escape key down (#2178)

* Pinning window disables close on escape key down

* Update tooltip for window pinning
This commit is contained in:
Lyna 2025-02-06 18:55:06 +00:00 committed by GitHub
parent af1ddf5bfb
commit 5dd097d72b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -6,6 +6,7 @@ using System.Numerics;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using CheapLoc; using CheapLoc;
using Dalamud.Game.ClientState.Keys; using Dalamud.Game.ClientState.Keys;
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using Dalamud.Interface.Components; using Dalamud.Interface.Components;
@ -15,7 +16,9 @@ using Dalamud.Interface.Windowing.Persistence;
using Dalamud.Logging.Internal; using Dalamud.Logging.Internal;
using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI;
using ImGuiNET; using ImGuiNET;
using PInvoke; using PInvoke;
namespace Dalamud.Interface.Windowing; namespace Dalamud.Interface.Windowing;
@ -429,7 +432,7 @@ public abstract class Window
} }
ImGuiComponents.HelpMarker( ImGuiComponents.HelpMarker(
Loc.Localize("WindowSystemContextActionPinHint", "Pinned windows will not move or resize when you click and drag them.")); Loc.Localize("WindowSystemContextActionPinHint", "Pinned windows will not move or resize when you click and drag them, nor will they close when escape is pressed."));
} }
if (this.internalIsClickthrough) if (this.internalIsClickthrough)
@ -521,7 +524,7 @@ public abstract class Window
this.IsFocused = ImGui.IsWindowFocused(ImGuiFocusedFlags.RootAndChildWindows); this.IsFocused = ImGui.IsWindowFocused(ImGuiFocusedFlags.RootAndChildWindows);
if (internalDrawFlags.HasFlag(WindowDrawFlags.UseFocusManagement)) if (internalDrawFlags.HasFlag(WindowDrawFlags.UseFocusManagement) && !this.internalIsPinned)
{ {
var escapeDown = Service<KeyState>.Get()[VirtualKey.ESCAPE]; var escapeDown = Service<KeyState>.Get()[VirtualKey.ESCAPE];
if (escapeDown && this.IsFocused && !wasEscPressedLastFrame && this.RespectCloseHotkey) if (escapeDown && this.IsFocused && !wasEscPressedLastFrame && this.RespectCloseHotkey)