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 <https://github.com/Genymobile/scrcpy/pull/2259>
Refs <https://github.com/Genymobile/scrcpy/pull/2258>
@@ -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) {
+ if (down) {
press_back_or_turn_screen_on(im->controller);
+ }
return;
}
if (control && event->button == SDL_BUTTON_MIDDLE) {
+ 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) {
+ if (down) {
screen_resize_to_fit(im->screen);
+ }
return;
}
}
