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) {
|
if (to < 0) {
|
||||||
to = 0;
|
to = 0;
|
||||||
}
|
}
|
||||||
while (to >= 0) {
|
for(;;) {
|
||||||
uint32_t e = msg_poll_ui_event();
|
uint32_t e = msg_poll_ui_event();
|
||||||
if (e) {
|
if (e) {
|
||||||
mp_obj_tuple_t *tuple = MP_OBJ_TO_PTR(mp_obj_new_tuple(3, NULL));
|
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);
|
memcpy(vstr.buf, m, 64);
|
||||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||||
}
|
}
|
||||||
|
if (to <= 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
mp_hal_delay_us_fast(TICK_RESOLUTION);
|
mp_hal_delay_us_fast(TICK_RESOLUTION);
|
||||||
to -= TICK_RESOLUTION;
|
to -= TICK_RESOLUTION;
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,7 @@ uint32_t trezorui_poll_sdl_event(void)
|
|||||||
{
|
{
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
int x, y;
|
int x, y;
|
||||||
|
SDL_PumpEvents();
|
||||||
if (SDL_PollEvent(&event) > 0) {
|
if (SDL_PollEvent(&event) > 0) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case SDL_MOUSEBUTTONDOWN:
|
case SDL_MOUSEBUTTONDOWN:
|
||||||
@ -51,6 +52,8 @@ uint32_t trezorui_poll_sdl_event(void)
|
|||||||
return (0x00 << 24) | (0x01 << 16) | (x << 8) | y; // touch_start
|
return (0x00 << 24) | (0x01 << 16) | (x << 8) | y; // touch_start
|
||||||
break;
|
break;
|
||||||
case SDL_MOUSEMOTION:
|
case SDL_MOUSEMOTION:
|
||||||
|
// remove other SDL_MOUSEMOTION events from queue
|
||||||
|
SDL_FlushEvent(SDL_MOUSEMOTION);
|
||||||
if (event.motion.state) {
|
if (event.motion.state) {
|
||||||
return (0x00 << 24) | (0x02 << 16) | (x << 8) | y; // touch_move
|
return (0x00 << 24) | (0x02 << 16) | (x << 8) | y; // touch_move
|
||||||
}
|
}
|
||||||
@ -60,6 +63,11 @@ uint32_t trezorui_poll_sdl_event(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SDL_KEYUP:
|
||||||
|
if (event.key.keysym.sym == SDLK_ESCAPE) {
|
||||||
|
exit(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case SDL_QUIT:
|
case SDL_QUIT:
|
||||||
exit(3);
|
exit(3);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user