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>
This commit is contained in:
parent
edee69d637
commit
8cc057c8f1
1 changed files with 10 additions and 4 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue