From 8cc057c8f14d051b2480bad5116083bbeb2a2270 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 released" events Some mouse clicks DOWN are captured for shortcuts, but the matching UP events were still forwarded to the device. Instead, capture both DOWN and UP for shortcuts, and do nothing on UP. PR #2259 Refs #2258 --- 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; } }