input handler: fix unpressing keys when consumer is set

This commit is contained in:
Bixilon 2022-12-25 18:24:45 +01:00
parent 822972ff1f
commit 17b1326a90
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -63,6 +63,9 @@ class RenderWindowInputHandler(
val interactionManager = InteractionManager(context) val interactionManager = InteractionManager(context)
var inputHandler: InputHandler? = null var inputHandler: InputHandler? = null
set(value) { set(value) {
if (field == value) {
return
}
field = value field = value
deactivateAll() deactivateAll()
@ -132,9 +135,8 @@ class RenderWindowInputHandler(
keysDown.clear() keysDown.clear()
keysLastDownTime.clear() keysLastDownTime.clear()
val iterator = keyBindingCallbacks.iterator() for ((name, pair) in keyBindingCallbacks) {
for ((name, pair) in iterator) { val down = name in keyBindingsDown
val down = keyBindingsDown.contains(name)
if (!down || pair.defaultPressed) { if (!down || pair.defaultPressed) {
continue continue
} }
@ -151,7 +153,7 @@ class RenderWindowInputHandler(
for (callback in pair.callback) { for (callback in pair.callback) {
callback(false) callback(false)
} }
iterator.remove() keyBindingsDown -= name
} }
} }