This commit is contained in:
twinaphex 2020-02-23 05:55:15 +01:00
parent 3be4eac555
commit 8b11d9f039
2 changed files with 22 additions and 17 deletions

View File

@ -120,10 +120,10 @@ static icade_map_t icade_maps[MAX_ICADE_PROFILES][MAX_ICADE_KEYS];
static bool handle_icade_event(unsigned *code, bool *keydown)
{
settings_t *settings = config_get_ptr();
static bool initialized = false;
bool ret = false;
unsigned kb_type_idx = settings->uints.input_keyboard_gamepad_mapping_type;
bool ret = false;
settings_t *settings = config_get_ptr();
unsigned kb_type_idx = settings->uints.input_keyboard_gamepad_mapping_type;
if (!initialized)
{
@ -274,20 +274,21 @@ void apple_input_keyboard_event(bool down,
unsigned code, uint32_t character, uint32_t mod, unsigned device)
{
#if TARGET_OS_IPHONE
settings_t *settings = config_get_ptr();
settings_t *settings = config_get_ptr();
bool keyboard_gamepad_enable = settings->bools.input_keyboard_gamepad_enable;
bool small_keyboard_enable = settings->bools.input_small_keyboard_enable;
#endif
code = HIDKEY(code);
code = HIDKEY(code);
#if TARGET_OS_IPHONE
if (settings->bools.input_keyboard_gamepad_enable)
if (keyboard_gamepad_enable)
{
if (handle_icade_event(&code, &down))
character = 0;
else
code = 0;
}
else if (settings->bools.input_small_keyboard_enable)
else if (small_keyboard_enable)
{
if (handle_small_keyboard(&code, down))
character = 0;

View File

@ -86,19 +86,23 @@ int init_xkb(int fd, size_t size)
}
else
{
struct string_list *list = NULL;
struct xkb_rule_names rule = {0};
settings_t *settings = config_get_ptr();
struct string_list *list = NULL;
struct xkb_rule_names rule = {0};
settings_t *settings = config_get_ptr();
const char *input_keyboard_layout = settings->arrays.input_keyboard_layout;
rule.rules = "evdev";
if (*settings->arrays.input_keyboard_layout)
if (*input_keyboard_layout)
{
list = string_split(settings->arrays.input_keyboard_layout, ":");
if (list && list->size >= 2)
rule.variant = list->elems[1].data;
if (list && list->size >= 1)
rule.layout = list->elems[0].data;
list = string_split(input_keyboard_layout, ":");
if (list)
{
if (list->size >= 2)
rule.variant = list->elems[1].data;
if (list->size >= 1)
rule.layout = list->elems[0].data;
}
}
xkb_map = xkb_keymap_new_from_names(xkb_ctx,