Fix input handling

Keyboard input is blocked when a menu is receiving text input
Mouse inputs are blocked when the mouse is visible and hovering over an imgui item
This commit is contained in:
2024-11-24 02:28:22 -05:00
parent 4285dafeb6
commit 606e2e0b9f
2 changed files with 43 additions and 1 deletions

View File

@@ -0,0 +1,33 @@
using HarmonyLib;
using VRage;
using VRage.Input;
using VRage.Input.Keyboard;
using VRage.Platform.Windows.Input;
namespace CringeLauncher.Patches;
[HarmonyPatch]
internal static class InputPatch
{
[HarmonyPrefix, HarmonyPatch(typeof(MyDirectInput), nameof(MyDirectInput.GetMouseState))]
private static bool GetMouseStatePrefix(ref MyMouseState state)
{
if (ImGuiHandler.Instance?.BlockMouse == true && (MyVRage.Platform.Input.ShowCursor || ImGuiHandler.Instance.DrawMouse))
{
state = default;
return false;
}
return true;
}
[HarmonyPrefix, HarmonyPatch("VRage.Input.Keyboard.MyGuiLocalizedKeyboardState", "GetCurrentState")]
private static bool GetKeyboardStatePrefix(ref MyKeyboardState __result)
{
if (ImGuiHandler.Instance?.BlockKeys == true)
{
__result = default;
return false;
}
return true;
}
}