1.0.8.3: Restore WndProc at start of teardown so left-click works after disable

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-07 10:57:36 -05:00
parent f4912bbdb2
commit 57d1bc5c0f
5 changed files with 26 additions and 5 deletions
+16 -1
View File
@@ -565,7 +565,8 @@ namespace HSUI.Helpers
Plugin.Logger.Info("\tOld WndProc: " + _imguiWndProcPtr.ToString("X"));
}
private void RestoreWndProc()
/// <summary>Restore the game window's WndProc so left-click works again. Idempotent.</summary>
internal void RestoreWndProc()
{
if (_wndHandle == IntPtr.Zero || _imguiWndProcPtr == IntPtr.Zero)
return;
@@ -584,6 +585,20 @@ namespace HSUI.Helpers
{
_wndHandle = IntPtr.Zero;
_imguiWndProcPtr = IntPtr.Zero;
_wndProcPtr = IntPtr.Zero;
}
}
/// <summary>Call at the very start of plugin disable so left-click is restored even if disposal fails later.</summary>
public static void RestoreWndProcIfNeeded()
{
try
{
Instance?.RestoreWndProc();
}
catch (Exception ex)
{
Plugin.Logger?.Warning($"[HSUI] RestoreWndProcIfNeeded: {ex.Message}");
}
}