From f0f96fbc3dc4f99908243af62c21409feeac4131 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Fri, 16 Apr 2021 17:53:37 +0200 Subject: [PATCH] Prevent forwarding only mouse UP events Some mouse clicks DOWN are captured for shortcuts, but the matching UP event was still forwarded to the device. Instead, capture both DOWN and UP for shortcuts, and do nothing on UP. --- app/src/input_manager.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/input_manager.c b/app/src/input_manager.c index 7226d68f..f6b1a96a 100644 --- a/app/src/input_manager.c +++ b/app/src/input_manager.c @@ -646,13 +646,17 @@ input_manager_process_mouse_button(struct input_manager *im, } bool down = event->type == SDL_MOUSEBUTTONDOWN; - if (!im->forward_all_clicks && down) { + if (!im->forward_all_clicks) { if (control && event->button == SDL_BUTTON_RIGHT) { - press_back_or_turn_screen_on(im->controller); + if (down) { + press_back_or_turn_screen_on(im->controller); + } return; } if (control && event->button == SDL_BUTTON_MIDDLE) { - action_home(im->controller, ACTION_DOWN | ACTION_UP); + if (down) { + action_home(im->controller, ACTION_DOWN | ACTION_UP); + } return; } @@ -665,7 +669,9 @@ input_manager_process_mouse_button(struct input_manager *im, bool outside = x < r->x || x >= r->x + r->w || y < r->y || y >= r->y + r->h; if (outside) { - screen_resize_to_fit(im->screen); + if (down) { + screen_resize_to_fit(im->screen); + } return; } }