diff --git a/JavaApp/libs_lwjgl/lwjgl-lwjglx.jar b/JavaApp/libs_lwjgl/lwjgl-lwjglx.jar index 564a0f5b..e415c39a 100644 Binary files a/JavaApp/libs_lwjgl/lwjgl-lwjglx.jar and b/JavaApp/libs_lwjgl/lwjgl-lwjglx.jar differ diff --git a/Natives/SurfaceViewController.m b/Natives/SurfaceViewController.m index b4e3a823..b75f6b23 100644 --- a/Natives/SurfaceViewController.m +++ b/Natives/SurfaceViewController.m @@ -218,6 +218,7 @@ BOOL slideableHotbar; mouse.mouseInput.leftButton.pressedChangedHandler = nil; mouse.mouseInput.middleButton.pressedChangedHandler = nil; mouse.mouseInput.rightButton.pressedChangedHandler = nil; + [mouse.mouseInput.auxiliaryButtons makeObjectsPerformSelector:@selector(setPressedChangedHandler:) withObject:nil]; [self setNeedsUpdateOfPrefersPointerLocked]; if (getPrefBool(@"controll.hardware_hide")) { self.ctrlView.hidden = NO; @@ -653,6 +654,12 @@ BOOL slideableHotbar; mouse.mouseInput.rightButton.pressedChangedHandler = ^(GCControllerButtonInput * _Nonnull button, float value, BOOL pressed) { CallbackBridge_nativeSendMouseButton(GLFW_MOUSE_BUTTON_RIGHT, pressed, 0); }; + // GLFW can handle up to 8 mouse buttons, the first 3 buttons are reserved for left,middle,right + for (int i = 0; i < MIN(mouse.mouseInput.auxiliaryButtons.count, 5); i++) { + mouse.mouseInput.auxiliaryButtons[i].pressedChangedHandler = ^(GCControllerButtonInput * _Nonnull button, float value, BOOL pressed) { + CallbackBridge_nativeSendMouseButton(GLFW_MOUSE_BUTTON_4 + i, pressed, 0); + }; + } mouse.mouseInput.scroll.xAxis.valueChangedHandler = ^(GCControllerAxisInput * _Nonnull axis, float value) { // Workaround MC-121772 (macOS/iOS feature)