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 <https://github.com/Genymobile/scrcpy/pull/2259>
Refs #2258 <https://github.com/Genymobile/scrcpy/pull/2258>
pull/2261/head
Romain Vimont 3 years ago
parent edee69d637
commit 8cc057c8f1

@ -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;
}
}

Loading…
Cancel
Save