From b02b0e0913a85b5f2d26153e6ad66351749f3290 Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Tue, 25 Nov 2025 09:34:00 -0500 Subject: [PATCH 1/4] fix mouse release being ignored in guis --- src/main/java/dev/cigarette/mixin/MouseMixin.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/cigarette/mixin/MouseMixin.java b/src/main/java/dev/cigarette/mixin/MouseMixin.java index 52409a3e..174ede9d 100644 --- a/src/main/java/dev/cigarette/mixin/MouseMixin.java +++ b/src/main/java/dev/cigarette/mixin/MouseMixin.java @@ -3,6 +3,7 @@ import dev.cigarette.helper.KeybindHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; +import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -23,9 +24,13 @@ private void onMouseButton(long window, int button, int action, int mods, Callba ci.cancel(); return; } - if (client.currentScreen == null && (KeybindHelper.handleBlockedMouseInputs(client, button, action, mods) || KeybindHelper.handleCustomMouse(client, button, action, mods))) { - ci.cancel(); - return; + if (client.currentScreen == null) { + if (KeybindHelper.handleBlockedMouseInputs(client, button, action, mods) || KeybindHelper.handleCustomMouse(client, button, action, mods)) { + ci.cancel(); + return; + } + } else if (action == GLFW.GLFW_RELEASE) { + KeybindHelper.handleCustomMouse(client, button, action, mods); } } } From 9fb84b5a66b6cd04cff77ebd02090900f7c61348 Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Tue, 25 Nov 2025 09:47:42 -0500 Subject: [PATCH 2/4] fix key release being ignored in guis --- src/main/java/dev/cigarette/mixin/KeyboardMixin.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/cigarette/mixin/KeyboardMixin.java b/src/main/java/dev/cigarette/mixin/KeyboardMixin.java index 98aba9b1..739a01f2 100644 --- a/src/main/java/dev/cigarette/mixin/KeyboardMixin.java +++ b/src/main/java/dev/cigarette/mixin/KeyboardMixin.java @@ -3,6 +3,7 @@ import dev.cigarette.helper.KeybindHelper; import net.minecraft.client.Keyboard; import net.minecraft.client.MinecraftClient; +import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -17,9 +18,13 @@ private void onKey(long window, int key, int scancode, int action, int modifiers ci.cancel(); return; } - if (client.currentScreen == null && (KeybindHelper.handleKeyByGUI(client, key, scancode, action, modifiers) || KeybindHelper.handleBlockedKeyInputs(client, key, scancode, action, modifiers) || KeybindHelper.handleCustomKeys(client, key, scancode, action, modifiers))) { - ci.cancel(); - return; + if (client.currentScreen == null) { + if (KeybindHelper.handleKeyByGUI(client, key, scancode, action, modifiers) || KeybindHelper.handleBlockedKeyInputs(client, key, scancode, action, modifiers) || KeybindHelper.handleCustomKeys(client, key, scancode, action, modifiers)) { + ci.cancel(); + return; + } + } else if (action == GLFW.GLFW_RELEASE) { + KeybindHelper.handleCustomKeys(client, key, scancode, action, modifiers); } } } From 57a2244eec58f8b2ffbe63e188ee84ddb43851d2 Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Tue, 25 Nov 2025 09:48:07 -0500 Subject: [PATCH 3/4] force unrelease keys virtually after unblocking inputs --- src/main/java/dev/cigarette/helper/KeybindHelper.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/dev/cigarette/helper/KeybindHelper.java b/src/main/java/dev/cigarette/helper/KeybindHelper.java index 9b600260..b7b16809 100644 --- a/src/main/java/dev/cigarette/helper/KeybindHelper.java +++ b/src/main/java/dev/cigarette/helper/KeybindHelper.java @@ -263,6 +263,9 @@ public static void forceBlockInputs(Object module, InputBlocker blocker) { public static void unblock() { blockedInputs = null; blockingModule = null; + for(MinecraftKeybind keybind : wrappedBindings) { + keybind.release(); + } updateKeyStates(); } From da06fb40b81d103fbcef660d83619d8c62853120 Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Tue, 25 Nov 2025 09:50:33 -0500 Subject: [PATCH 4/4] remove useless log --- src/main/java/dev/cigarette/helper/keybind/InputBlocker.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java b/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java index 72063cc6..31afa016 100644 --- a/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java +++ b/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java @@ -93,7 +93,6 @@ public boolean processMouse(int button, int action, int modifiers) { for (MinecraftKeybind binding : blockedBindings) { if (!binding.isMouse) continue; if (!binding.isOfMouse(button)) continue; - System.out.println("Processing Mouse | button=" + button + " action=" + action); binding.physicalAction(action); return true; }