Simplify boolean condition using XOR

(A && !B) || (!A && B) <==> A ^ B

PR #5076 <https://github.com/Genymobile/scrcpy/pull/5076>
This commit is contained in:
Romain Vimont 2024-07-08 16:18:06 +02:00
parent 487a6b9cf4
commit 6d98766cd5

View File

@ -850,9 +850,7 @@ sc_input_manager_process_mouse_button(struct sc_input_manager *im,
bool ctrl_pressed = keymod & KMOD_CTRL; bool ctrl_pressed = keymod & KMOD_CTRL;
bool shift_pressed = keymod & KMOD_SHIFT; bool shift_pressed = keymod & KMOD_SHIFT;
if (event->button == SDL_BUTTON_LEFT && if (event->button == SDL_BUTTON_LEFT &&
((down && !im->vfinger_down && ((down && !im->vfinger_down && (ctrl_pressed ^ shift_pressed)) ||
((ctrl_pressed && !shift_pressed) ||
(!ctrl_pressed && shift_pressed))) ||
(!down && im->vfinger_down))) { (!down && im->vfinger_down))) {
struct sc_point mouse = struct sc_point mouse =
sc_screen_convert_window_to_frame_coords(im->screen, event->x, sc_screen_convert_window_to_frame_coords(im->screen, event->x,