diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-09-06 17:48:07 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-09-06 17:48:07 +0200 |
| commit | 67da8fd538070bcb652538741fcfe89252173abe (patch) | |
| tree | 24053cc0b409a15f562289b8b3effd13f6de4bd0 /src/main/kotlin/gui/config | |
| parent | d62ee562abe14cf06275b30411226e440a6ac3a7 (diff) | |
| download | Firmament-67da8fd538070bcb652538741fcfe89252173abe.tar.gz Firmament-67da8fd538070bcb652538741fcfe89252173abe.tar.bz2 Firmament-67da8fd538070bcb652538741fcfe89252173abe.zip | |
feat: add support for mouse button binds
Diffstat (limited to 'src/main/kotlin/gui/config')
| -rw-r--r-- | src/main/kotlin/gui/config/KeyBindingStateManager.kt | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/main/kotlin/gui/config/KeyBindingStateManager.kt b/src/main/kotlin/gui/config/KeyBindingStateManager.kt index 500f0fa..d8ec359 100644 --- a/src/main/kotlin/gui/config/KeyBindingStateManager.kt +++ b/src/main/kotlin/gui/config/KeyBindingStateManager.kt @@ -25,11 +25,10 @@ class KeyBindingStateManager( var lastPressed: GenericInputButton? = null var label: Text = Text.literal("") - fun onClick() { + fun onClick(mouseButton: Int) { if (editing) { - editing = false - blur() - } else { + keyboardEvent(GenericInputButton.mouse(mouseButton), true) + } else if (mouseButton == GLFW.GLFW_MOUSE_BUTTON_LEFT) { editing = true requestFocus() } @@ -37,8 +36,8 @@ class KeyBindingStateManager( } fun keyboardEvent(keyCode: GenericInputButton, pressed: Boolean): Boolean { - return if (pressed) onKeyPressed(keyCode, InputModifiers.getCurrentModifiers()) - else onKeyReleased(keyCode, InputModifiers.getCurrentModifiers()) + return if (pressed) onKeyPressed(keyCode, InputModifiers.current()) + else onKeyReleased(keyCode, InputModifiers.current()) } fun onKeyPressed( @@ -91,7 +90,7 @@ class KeyBindingStateManager( var stroke = value().format() if (editing) { stroke = Text.empty() - val modifiers = InputModifiers.getCurrentModifiers() + val modifiers = InputModifiers.current() if (!modifiers.isEmpty()) { stroke.append(modifiers.format()) stroke.append(" + ") @@ -112,11 +111,16 @@ class KeyBindingStateManager( false, false ), action = { - this@KeyBindingStateManager.onClick() + this@KeyBindingStateManager.onClick(it) }) { override fun keyboardEvent(event: KeyboardEvent, context: GuiImmediateContext): Boolean { if (event is KeyboardEvent.KeyPressed) { - return this@KeyBindingStateManager.keyboardEvent(GenericInputButton.ofKeyAndScan(event.keycode, event.scancode), event.pressed) + return this@KeyBindingStateManager.keyboardEvent( + GenericInputButton.ofKeyAndScan( + event.keycode, + event.scancode + ), event.pressed + ) } return super.keyboardEvent(event, context) } |
