mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-01-03 12:00:59 +00:00
remove extraneous motion events from queue
This commit is contained in:
parent
9856f96cf7
commit
11190fccba
@ -55,7 +55,7 @@ STATIC mp_obj_t mod_TrezorMsg_Msg_select(mp_obj_t self, mp_obj_t timeout_us) {
|
||||
if (to < 0) {
|
||||
to = 0;
|
||||
}
|
||||
while (to >= 0) {
|
||||
for(;;) {
|
||||
uint32_t e = msg_poll_ui_event();
|
||||
if (e) {
|
||||
mp_obj_tuple_t *tuple = MP_OBJ_TO_PTR(mp_obj_new_tuple(3, NULL));
|
||||
@ -71,6 +71,9 @@ STATIC mp_obj_t mod_TrezorMsg_Msg_select(mp_obj_t self, mp_obj_t timeout_us) {
|
||||
memcpy(vstr.buf, m, 64);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
}
|
||||
if (to <= 0) {
|
||||
break;
|
||||
}
|
||||
mp_hal_delay_us_fast(TICK_RESOLUTION);
|
||||
to -= TICK_RESOLUTION;
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ uint32_t trezorui_poll_sdl_event(void)
|
||||
{
|
||||
SDL_Event event;
|
||||
int x, y;
|
||||
SDL_PumpEvents();
|
||||
if (SDL_PollEvent(&event) > 0) {
|
||||
switch (event.type) {
|
||||
case SDL_MOUSEBUTTONDOWN:
|
||||
@ -51,6 +52,8 @@ uint32_t trezorui_poll_sdl_event(void)
|
||||
return (0x00 << 24) | (0x01 << 16) | (x << 8) | y; // touch_start
|
||||
break;
|
||||
case SDL_MOUSEMOTION:
|
||||
// remove other SDL_MOUSEMOTION events from queue
|
||||
SDL_FlushEvent(SDL_MOUSEMOTION);
|
||||
if (event.motion.state) {
|
||||
return (0x00 << 24) | (0x02 << 16) | (x << 8) | y; // touch_move
|
||||
}
|
||||
@ -60,6 +63,11 @@ uint32_t trezorui_poll_sdl_event(void)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SDL_KEYUP:
|
||||
if (event.key.keysym.sym == SDLK_ESCAPE) {
|
||||
exit(3);
|
||||
}
|
||||
break;
|
||||
case SDL_QUIT:
|
||||
exit(3);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user