mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 04:14:00 +00:00
Merge pull request #11670 from sonninnos/nowinkey-option
(DINPUT+WINRAW) Option for disabling Windows hotkeys
This commit is contained in:
commit
70feaebc91
@ -1724,6 +1724,9 @@ static struct config_bool_setting *populate_settings_bool(
|
||||
SETTING_BOOL("config_save_on_exit", &settings->bools.config_save_on_exit, true, DEFAULT_CONFIG_SAVE_ON_EXIT, false);
|
||||
SETTING_BOOL("show_hidden_files", &settings->bools.show_hidden_files, true, DEFAULT_SHOW_HIDDEN_FILES, false);
|
||||
SETTING_BOOL("input_autodetect_enable", &settings->bools.input_autodetect_enable, true, input_autodetect_enable, false);
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
SETTING_BOOL("input_nowinkey_enable", &settings->bools.input_nowinkey_enable, true, false, false);
|
||||
#endif
|
||||
SETTING_BOOL("input_sensors_enable", &settings->bools.input_sensors_enable, true, DEFAULT_INPUT_SENSORS_ENABLE, false);
|
||||
SETTING_BOOL("audio_rate_control", &settings->bools.audio_rate_control, true, DEFAULT_RATE_CONTROL, false);
|
||||
#ifdef HAVE_WASAPI
|
||||
|
@ -524,6 +524,9 @@ typedef struct settings
|
||||
bool input_backtouch_toggle;
|
||||
bool input_small_keyboard_enable;
|
||||
bool input_keyboard_gamepad_enable;
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
bool input_nowinkey_enable;
|
||||
#endif
|
||||
|
||||
/* Frame time counter */
|
||||
bool frame_time_counter_reset_after_fastforwarding;
|
||||
|
@ -159,9 +159,17 @@ static void *dinput_init(const char *joypad_driver)
|
||||
|
||||
if (di->keyboard)
|
||||
{
|
||||
DWORD flags;
|
||||
settings_t *settings;
|
||||
|
||||
settings = config_get_ptr();
|
||||
flags = DISCL_NONEXCLUSIVE | DISCL_FOREGROUND;
|
||||
if (settings->bools.input_nowinkey_enable)
|
||||
flags |= DISCL_NOWINKEY;
|
||||
|
||||
IDirectInputDevice8_SetDataFormat(di->keyboard, &c_dfDIKeyboard);
|
||||
IDirectInputDevice8_SetCooperativeLevel(di->keyboard,
|
||||
(HWND)video_driver_window_get(), DISCL_NONEXCLUSIVE | DISCL_FOREGROUND | DISCL_NOWINKEY);
|
||||
(HWND)video_driver_window_get(), flags);
|
||||
IDirectInputDevice8_Acquire(di->keyboard);
|
||||
}
|
||||
|
||||
|
@ -100,12 +100,16 @@ static void winraw_destroy_window(HWND wnd)
|
||||
static BOOL winraw_set_keyboard_input(HWND window)
|
||||
{
|
||||
RAWINPUTDEVICE rid;
|
||||
settings_t *settings;
|
||||
|
||||
settings = config_get_ptr();
|
||||
|
||||
rid.dwFlags = window ? 0 : RIDEV_REMOVE;
|
||||
rid.hwndTarget = window;
|
||||
rid.usUsagePage = 0x01; /* generic desktop */
|
||||
rid.usUsage = 0x06; /* keyboard */
|
||||
rid.dwFlags |= RIDEV_NOHOTKEYS; /* disable win keys while focused */
|
||||
if (settings->bools.input_nowinkey_enable)
|
||||
rid.dwFlags |= RIDEV_NOHOTKEYS; /* disable win keys while focused */
|
||||
|
||||
return RegisterRawInputDevices(&rid, 1, sizeof(RAWINPUTDEVICE));
|
||||
}
|
||||
|
@ -1302,6 +1302,12 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE,
|
||||
"input_autodetect_enable"
|
||||
)
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_INPUT_NOWINKEY_ENABLE,
|
||||
"input_nowinkey_enable"
|
||||
)
|
||||
#endif
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_INPUT_SENSORS_ENABLE,
|
||||
"input_sensors_enable"
|
||||
|
@ -2058,6 +2058,16 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_INPUT_AUTODETECT_ENABLE,
|
||||
"Automatically configures controllers that have a profile, Plug-and-Play style."
|
||||
)
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_NOWINKEY_ENABLE,
|
||||
"Disable Windows Hotkeys"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_INPUT_NOWINKEY_ENABLE,
|
||||
"Keeps Win-key combinations inside the application. (Restart Required)"
|
||||
)
|
||||
#endif
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_SENSORS_ENABLE,
|
||||
"Auxiliary Sensor Input"
|
||||
|
@ -495,6 +495,9 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_savestate_max_keep, MENU_
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_autosave_interval, MENU_ENUM_SUBLABEL_AUTOSAVE_INTERVAL)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_remap_binds_enable, MENU_ENUM_SUBLABEL_INPUT_REMAP_BINDS_ENABLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_autodetect_enable, MENU_ENUM_SUBLABEL_INPUT_AUTODETECT_ENABLE)
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_nowinkey_enable, MENU_ENUM_SUBLABEL_INPUT_NOWINKEY_ENABLE)
|
||||
#endif
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_sensors_enable, MENU_ENUM_SUBLABEL_INPUT_SENSORS_ENABLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_swap_ok_cancel, MENU_ENUM_SUBLABEL_MENU_INPUT_SWAP_OK_CANCEL)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_pause_libretro, MENU_ENUM_SUBLABEL_PAUSE_LIBRETRO)
|
||||
@ -2869,6 +2872,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_autodetect_enable);
|
||||
break;
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
case MENU_ENUM_LABEL_INPUT_NOWINKEY_ENABLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_nowinkey_enable);
|
||||
break;
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_INPUT_SENSORS_ENABLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_sensors_enable);
|
||||
break;
|
||||
|
@ -6037,6 +6037,12 @@ unsigned menu_displaylist_build_list(
|
||||
MENU_ENUM_LABEL_INPUT_BIND_MODE,
|
||||
PARSE_ONLY_UINT, false) == 0)
|
||||
count++;
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
MENU_ENUM_LABEL_INPUT_NOWINKEY_ENABLE,
|
||||
PARSE_ONLY_BOOL, false) == 0)
|
||||
count++;
|
||||
#endif
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
MENU_ENUM_LABEL_INPUT_SENSORS_ENABLE,
|
||||
PARSE_ONLY_BOOL, false) == 0)
|
||||
|
@ -12063,6 +12063,24 @@ static bool setting_append_list(
|
||||
SD_FLAG_ADVANCED
|
||||
);
|
||||
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.input_nowinkey_enable,
|
||||
MENU_ENUM_LABEL_INPUT_NOWINKEY_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_NOWINKEY_ENABLE,
|
||||
false,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE
|
||||
);
|
||||
#endif
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.input_sensors_enable,
|
||||
|
@ -918,6 +918,9 @@ enum msg_hash_enums
|
||||
MENU_LABEL(INPUT_USER_BINDS),
|
||||
MENU_LABEL(INPUT_DUTY_CYCLE),
|
||||
MENU_LABEL(INPUT_AUTODETECT_ENABLE),
|
||||
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
|
||||
MENU_LABEL(INPUT_NOWINKEY_ENABLE),
|
||||
#endif
|
||||
MENU_LABEL(INPUT_SENSORS_ENABLE),
|
||||
MENU_LABEL(INPUT_DESCRIPTOR_LABEL_SHOW),
|
||||
MENU_LABEL(INPUT_DESCRIPTOR_HIDE_UNBOUND),
|
||||
|
Loading…
x
Reference in New Issue
Block a user