Merge pull request #538 from daemitus/windowSystem

Add more escape-button logging
This commit is contained in:
goaaats 2021-09-05 03:53:30 +02:00 committed by GitHub
commit dfd48f47c6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 1 deletions

View file

@ -78,7 +78,10 @@ namespace Dalamud.Game.Internal
// "Close Addon"
if (cmd == 12 && WindowSystem.HasAnyWindowSystemFocus)
{
Log.Verbose($"Cancelling global event CloseAddon command due to WindowSystem {WindowSystem.FocusedWindowSystemNamespace}");
return IntPtr.Zero;
}
return this.hookAtkUnitBaseReceiveGlobalEvent.Original(thisPtr, cmd, a3, a4, a5);
}
@ -86,7 +89,10 @@ namespace Dalamud.Game.Internal
private void AgentHudOpenSystemMenuDetour(void* thisPtr, AtkValue* atkValueArgs, uint menuSize)
{
if (WindowSystem.HasAnyWindowSystemFocus)
{
Log.Verbose($"Cancelling OpenSystemMenu due to WindowSystem {WindowSystem.FocusedWindowSystemNamespace}");
return;
}
var configuration = Service<DalamudConfiguration>.Get();

View file

@ -648,6 +648,7 @@ namespace Dalamud.Interface.Internal
this.lastWantCapture = this.LastImGuiIoPtr.WantCaptureMouse;
WindowSystem.HasAnyWindowSystemFocus = false;
WindowSystem.FocusedWindowSystemNamespace = string.Empty;
this.Draw?.Invoke();
Service<NotificationManager>.Get().Draw();

View file

@ -31,7 +31,12 @@ namespace Dalamud.Interface.Windowing
/// Gets a value indicating whether any <see cref="WindowSystem"/> contains any <see cref="Window"/>
/// that has focus and is not marked to be excluded from consideration.
/// </summary>
public static bool HasAnyWindowSystemFocus { get; internal set; }
public static bool HasAnyWindowSystemFocus { get; internal set; } = false;
/// <summary>
/// Gets the name of the currently focused window system that is redirecting normal escape functionality.
/// </summary>
public static string FocusedWindowSystemNamespace { get; internal set; } = string.Empty;
/// <summary>
/// Gets the timespan since the last time any window was focused.
@ -109,6 +114,8 @@ namespace Dalamud.Interface.Windowing
}
HasAnyWindowSystemFocus = true;
FocusedWindowSystemNamespace = this.Namespace;
lastAnyFocus = DateTimeOffset.Now;
}
else