From 53be17aee2466ce1c3229a5260c06ff7cf84ef45 Mon Sep 17 00:00:00 2001 From: sonninnos Date: Thu, 16 Jun 2022 16:49:51 +0300 Subject: [PATCH] Block pointer input when overlay is pressed --- input/input_driver.c | 15 +++++++++++---- input/input_driver.h | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/input/input_driver.c b/input/input_driver.c index 320beb4bfb..eaaa9a81f6 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -2052,10 +2052,14 @@ void input_poll_overlay( break; } - if (input_overlay_show_inputs != OVERLAY_SHOW_INPUT_NONE) - button_pressed = input_overlay_add_inputs(ol, - (input_overlay_show_inputs == OVERLAY_SHOW_INPUT_TOUCHED), - input_overlay_show_inputs_port); + button_pressed = input_overlay_add_inputs(ol, + (input_overlay_show_inputs == OVERLAY_SHOW_INPUT_TOUCHED), + input_overlay_show_inputs_port); + + input_st->block_pointer_input = button_pressed; + + if (input_overlay_show_inputs == OVERLAY_SHOW_INPUT_NONE) + button_pressed = false; if (button_pressed || polled) input_overlay_post_poll(overlay_visibility, ol, @@ -3977,6 +3981,9 @@ int16_t input_state_device( case RETRO_DEVICE_LIGHTGUN: case RETRO_DEVICE_POINTER: + if (input_st->block_pointer_input) + break; + if (id < RARCH_FIRST_META_KEY) { bool bind_valid = input_st->libretro_input_binds[port] diff --git a/input/input_driver.h b/input/input_driver.h index 9b087d6e26..8b24485921 100644 --- a/input/input_driver.h +++ b/input/input_driver.h @@ -436,6 +436,7 @@ typedef struct bool block_hotkey; bool block_libretro_input; + bool block_pointer_input; bool grab_mouse_state; bool analog_requested[MAX_USERS]; bool keyboard_mapping_blocked;