Use buttons.pressed for the menu
diff --git a/32blit-stm32/Src/32blit.c b/32blit-stm32/Src/32blit.c index 934f244..7e06d59 100644 --- a/32blit-stm32/Src/32blit.c +++ b/32blit-stm32/Src/32blit.c
@@ -421,16 +421,14 @@ Rect menu_item_frame (MenuItem item, float screen_width) { return Rect (0, item * 10 + 19, screen_width, 9); } void blit_menu_update(uint32_t time) { - static uint32_t last_buttons = 0; - uint32_t changed_buttons = blit::buttons ^ last_buttons; - if(blit::buttons & changed_buttons & blit::Button::DPAD_UP) { + if(blit::buttons.pressed & blit::Button::DPAD_UP) { menu_item --; - } else if (blit::buttons & changed_buttons & blit::Button::DPAD_DOWN) { + } else if (blit::buttons.pressed & blit::Button::DPAD_DOWN) { menu_item ++; } else { - bool button_a = blit::buttons & changed_buttons & blit::Button::A; + bool button_a = blit::buttons.pressed & blit::Button::A; switch(menu_item) { case BACKLIGHT: if (blit::buttons & blit::Button::DPAD_LEFT) { @@ -468,8 +466,6 @@ break; } } - - last_buttons = blit::buttons; } void blit_menu_render(uint32_t time) {