summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/input/input_sdl.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2023-01-14 15:57:22 +1100
committer Vas Crabb <vas@vastheman.com>2023-01-14 15:57:22 +1100
commit2592ac32c15622249028fecfb2043eda3129e8be (patch)
treeb262f0ffdfab902617d3972a2e5e00815bd8808e /src/osd/modules/input/input_sdl.cpp
parent33c6487b886eacad916a12637a575ad563fa9e61 (diff)
osd: Added option to accept SDL game controller/joystick input when losing UI focus.
Diffstat (limited to 'src/osd/modules/input/input_sdl.cpp')
-rw-r--r--src/osd/modules/input/input_sdl.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/osd/modules/input/input_sdl.cpp b/src/osd/modules/input/input_sdl.cpp
index b54af499dbb..295935fda88 100644
--- a/src/osd/modules/input/input_sdl.cpp
+++ b/src/osd/modules/input/input_sdl.cpp
@@ -1859,6 +1859,11 @@ public:
virtual void input_init(running_machine &machine) override
{
+ auto &sdlopts = downcast<sdl_options const &>(*options());
+ bool const sixaxis_mode = sdlopts.sixaxis();
+
+ if (!machine().options().debug && sdlopts.background_input())
+ SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, "0");
init_joystick();
@@ -1867,8 +1872,6 @@ public:
sdl_joystick_module_base::input_init(machine);
- bool const sixaxis_mode = downcast<const sdl_options *>(options())->sixaxis();
-
osd_printf_verbose("Joystick: Start initialization\n");
for (int physical_stick = 0; physical_stick < SDL_NumJoysticks(); physical_stick++)
create_joystick_device(machine, physical_stick, sixaxis_mode);
@@ -1947,11 +1950,13 @@ public:
virtual void input_init(running_machine &machine) override
{
- SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, "0");
-
auto &sdlopts = downcast<sdl_options const &>(*options());
bool const sixaxis_mode = sdlopts.sixaxis();
+ if (!machine().options().debuge() && sdlopts.background_input())
+ SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
+ SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, "0");
+
init_joystick();
if (!have_joystick())
return;