summaryrefslogtreecommitdiff
path: root/shared-bindings/gamepad
diff options
context:
space:
mode:
authorRadomir Dopieralski <openstack@sheep.art.pl>2019-06-12 10:06:39 +0200
committerScott Shawcroft <scott@tannewt.org>2019-06-12 11:42:41 -0700
commit5e265f4fbd11e1bc099f2a0860aac2ac72eaf854 (patch)
tree62897a448735898fe0a688f4c10885383bf40714 /shared-bindings/gamepad
parent036e7a332baea537d1a0b28854393fe1790b0991 (diff)
When clearing gamepad buffer, use the last button state, not 0
When reading the accumulated button presses in gamepad and gamepadshift, don't clear the buffer to "no buttons pressed", but instead set it to the current (last checked) state. This clears the accumulated presses, but retains any ongoing ones. This fixes #1935
Diffstat (limited to 'shared-bindings/gamepad')
-rw-r--r--shared-bindings/gamepad/GamePad.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/shared-bindings/gamepad/GamePad.c b/shared-bindings/gamepad/GamePad.c
index 15304d6a2..d3c29019a 100644
--- a/shared-bindings/gamepad/GamePad.c
+++ b/shared-bindings/gamepad/GamePad.c
@@ -127,7 +127,7 @@ STATIC mp_obj_t gamepad_make_new(const mp_obj_type_t *type, size_t n_args,
STATIC mp_obj_t gamepad_get_pressed(mp_obj_t self_in) {
gamepad_obj_t* gamepad_singleton = MP_STATE_VM(gamepad_singleton);
mp_obj_t pressed = MP_OBJ_NEW_SMALL_INT(gamepad_singleton->pressed);
- gamepad_singleton->pressed = 0;
+ gamepad_singleton->pressed = gamepad_singleton->last;
return pressed;
}
MP_DEFINE_CONST_FUN_OBJ_1(gamepad_get_pressed_obj, gamepad_get_pressed);