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:
+16
-1
@@ -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}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user