Handle setting keymap in examples more securely

This commit is contained in:
random human 2018-09-02 21:16:24 +05:30
parent 7bc2657984
commit 7105864e13
No known key found for this signature in database
GPG key ID: 73E5A60444CC77A3
7 changed files with 58 additions and 16 deletions

View file

@ -239,8 +239,14 @@ void new_input_notify(struct wl_listener *listener, void *data) {
wlr_log(WLR_ERROR, "Failed to create XKB context"); wlr_log(WLR_ERROR, "Failed to create XKB context");
exit(1); exit(1);
} }
wlr_keyboard_set_keymap(device->keyboard, xkb_map_new_from_names(context, struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
&rules, XKB_KEYMAP_COMPILE_NO_FLAGS)); XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Failed to create XKB keymap");
exit(1);
}
wlr_keyboard_set_keymap(device->keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context); xkb_context_unref(context);
break; break;
case WLR_INPUT_DEVICE_POINTER:; case WLR_INPUT_DEVICE_POINTER:;

View file

@ -239,8 +239,14 @@ void new_input_notify(struct wl_listener *listener, void *data) {
wlr_log(WLR_ERROR, "Failed to create XKB context"); wlr_log(WLR_ERROR, "Failed to create XKB context");
exit(1); exit(1);
} }
wlr_keyboard_set_keymap(device->keyboard, xkb_map_new_from_names(context, struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
&rules, XKB_KEYMAP_COMPILE_NO_FLAGS)); XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Failed to create XKB keymap");
exit(1);
}
wlr_keyboard_set_keymap(device->keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context); xkb_context_unref(context);
break; break;
default: default:

View file

@ -304,8 +304,14 @@ void new_input_notify(struct wl_listener *listener, void *data) {
wlr_log(WLR_ERROR, "Failed to create XKB context"); wlr_log(WLR_ERROR, "Failed to create XKB context");
exit(1); exit(1);
} }
wlr_keyboard_set_keymap(device->keyboard, xkb_map_new_from_names(context, struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
&rules, XKB_KEYMAP_COMPILE_NO_FLAGS)); XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Failed to create XKB keymap");
exit(1);
}
wlr_keyboard_set_keymap(device->keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context); xkb_context_unref(context);
break; break;
default: default:

View file

@ -188,8 +188,14 @@ void new_input_notify(struct wl_listener *listener, void *data) {
wlr_log(WLR_ERROR, "Failed to create XKB context"); wlr_log(WLR_ERROR, "Failed to create XKB context");
exit(1); exit(1);
} }
wlr_keyboard_set_keymap(device->keyboard, xkb_map_new_from_names(context, struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
&rules, XKB_KEYMAP_COMPILE_NO_FLAGS)); XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Failed to create XKB keymap");
exit(1);
}
wlr_keyboard_set_keymap(device->keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context); xkb_context_unref(context);
break; break;
default: default:

View file

@ -141,8 +141,14 @@ void new_input_notify(struct wl_listener *listener, void *data) {
wlr_log(WLR_ERROR, "Failed to create XKB context"); wlr_log(WLR_ERROR, "Failed to create XKB context");
exit(1); exit(1);
} }
wlr_keyboard_set_keymap(device->keyboard, xkb_map_new_from_names(context, struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
&rules, XKB_KEYMAP_COMPILE_NO_FLAGS)); XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Failed to create XKB keymap");
exit(1);
}
wlr_keyboard_set_keymap(device->keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context); xkb_context_unref(context);
break; break;
default: default:

View file

@ -297,8 +297,14 @@ void new_input_notify(struct wl_listener *listener, void *data) {
wlr_log(WLR_ERROR, "Failed to create XKB context"); wlr_log(WLR_ERROR, "Failed to create XKB context");
exit(1); exit(1);
} }
wlr_keyboard_set_keymap(device->keyboard, xkb_map_new_from_names(context, struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
&rules, XKB_KEYMAP_COMPILE_NO_FLAGS)); XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Failed to create XKB keymap");
exit(1);
}
wlr_keyboard_set_keymap(device->keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context); xkb_context_unref(context);
break; break;
case WLR_INPUT_DEVICE_TABLET_PAD:; case WLR_INPUT_DEVICE_TABLET_PAD:;

View file

@ -210,8 +210,14 @@ void new_input_notify(struct wl_listener *listener, void *data) {
wlr_log(WLR_ERROR, "Failed to create XKB context"); wlr_log(WLR_ERROR, "Failed to create XKB context");
exit(1); exit(1);
} }
wlr_keyboard_set_keymap(device->keyboard, xkb_map_new_from_names(context, struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
&rules, XKB_KEYMAP_COMPILE_NO_FLAGS)); XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Failed to create XKB keymap");
exit(1);
}
wlr_keyboard_set_keymap(device->keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context); xkb_context_unref(context);
break; break;
case WLR_INPUT_DEVICE_TOUCH:; case WLR_INPUT_DEVICE_TOUCH:;