diff --git a/Dalamud/Interface/Internal/DalamudIme.cs b/Dalamud/Interface/Internal/DalamudIme.cs index f8d7fb690..b3252546a 100644 --- a/Dalamud/Interface/Internal/DalamudIme.cs +++ b/Dalamud/Interface/Internal/DalamudIme.cs @@ -439,7 +439,7 @@ internal sealed unsafe class DalamudIme : IDisposable, IServiceType ref var textState = ref TextState; textState.Stb.Cursor = textState.Stb.SelectStart = textState.Stb.SelectEnd; - Log.Information($"{nameof(this.ClearState)}"); + // Log.Information($"{nameof(this.ClearState)}"); } private void LoadCand(HIMC hImc) diff --git a/Dalamud/Interface/Internal/WndProcHookManager.cs b/Dalamud/Interface/Internal/WndProcHookManager.cs index fcd90c95a..1110ff387 100644 --- a/Dalamud/Interface/Internal/WndProcHookManager.cs +++ b/Dalamud/Interface/Internal/WndProcHookManager.cs @@ -112,19 +112,21 @@ internal sealed class WndProcHookManager : IServiceType, IDisposable if (uMsg == this.unhookSelfMessage) { - // Remove self from the chain. - SetWindowLongPtrW(hwnd, GWLP.GWLP_WNDPROC, nextProc); - lock (this.wndProcNextDict) - this.wndProcNextDict.Remove(hwnd); - // Even though this message is dedicated for our processing, // satisfy the expectations by calling the next window procedure. - return CallWindowProcW( + var rv = CallWindowProcW( (delegate* unmanaged)nextProc, hwnd, uMsg, wParam, lParam); + + // Remove self from the chain. + SetWindowLongPtrW(hwnd, GWLP.GWLP_WNDPROC, nextProc); + lock (this.wndProcNextDict) + this.wndProcNextDict.Remove(hwnd); + + return rv; } var arg = new WndProcOverrideEventArgs(hwnd, ref uMsg, ref wParam, ref lParam);