Signed-off-by: Ran Benita <ran234@gmail.com>
+
+xkb_mod_index_t
+XkbModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
+ enum mod_type type)
+{
+ xkb_mod_index_t i;
+ const struct xkb_mod *mod;
+
+ darray_enumerate(i, mod, keymap->mods)
+ if ((mod->type & type) && name == mod->name)
+ return i;
+
+ return XKB_MOD_INVALID;
+}
XKB_EXPORT xkb_mod_index_t
xkb_keymap_mod_get_index(struct xkb_keymap *keymap, const char *name)
{
XKB_EXPORT xkb_mod_index_t
xkb_keymap_mod_get_index(struct xkb_keymap *keymap, const char *name)
{
- const struct xkb_mod *mod;
atom = xkb_atom_lookup(keymap->ctx, name);
if (atom == XKB_ATOM_NONE)
return XKB_MOD_INVALID;
atom = xkb_atom_lookup(keymap->ctx, name);
if (atom == XKB_ATOM_NONE)
return XKB_MOD_INVALID;
- darray_enumerate(i, mod, keymap->mods)
- if (mod->name == atom)
- return i;
-
- return XKB_MOD_INVALID;
+ return XkbModNameToIndex(keymap, atom, MOD_BOTH);
void
XkbEscapeMapName(char *name);
void
XkbEscapeMapName(char *name);
+xkb_mod_index_t
+XkbModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
+ enum mod_type type);
+
xkb_layout_index_t
wrap_group_into_range(int32_t group,
xkb_layout_index_t num_groups,
xkb_layout_index_t
wrap_group_into_range(int32_t group,
xkb_layout_index_t num_groups,
return xkb_atom_text(keymap->ctx, darray_item(keymap->mods, ndx).name);
}
return xkb_atom_text(keymap->ctx, darray_item(keymap->mods, ndx).name);
}
-xkb_mod_index_t
-ModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
- enum mod_type type)
-{
- xkb_mod_index_t i;
- const struct xkb_mod *mod;
-
- darray_enumerate(i, mod, keymap->mods)
- if ((mod->type & type) && name == mod->name)
- return i;
-
- return XKB_MOD_INVALID;
-}
-
const char *
ActionTypeText(enum xkb_action_type type)
{
const char *
ActionTypeText(enum xkb_action_type type)
{
const char *
ModIndexText(const struct xkb_keymap *keymap, xkb_mod_index_t ndx);
const char *
ModIndexText(const struct xkb_keymap *keymap, xkb_mod_index_t ndx);
-xkb_mod_index_t
-ModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
- enum mod_type type);
-
const char *
ActionTypeText(enum xkb_action_type type);
const char *
ActionTypeText(enum xkb_action_type type);
- ndx = ModNameToIndex(keymap, field, mod_type);
+ ndx = XkbModNameToIndex(keymap, field, mod_type);
if (ndx == XKB_MOD_INVALID)
return false;
if (ndx == XKB_MOD_INVALID)
return false;
}
name = def->ident.ident;
}
name = def->ident.ident;
- ndx = ModNameToIndex(keymap, name, mod_type);
+ ndx = XkbModNameToIndex(keymap, name, mod_type);
if (ndx == XKB_MOD_INVALID) {
log_err(keymap->ctx,
"Cannot resolve virtual modifier: "
if (ndx == XKB_MOD_INVALID) {
log_err(keymap->ctx,
"Cannot resolve virtual modifier: "
bool ok;
struct xkb_context *ctx = info->ctx;
bool ok;
struct xkb_context *ctx = info->ctx;
- ndx = ModNameToIndex(info->keymap, def->modifier, MOD_REAL);
+ ndx = XkbModNameToIndex(info->keymap, def->modifier, MOD_REAL);
if (ndx == XKB_MOD_INVALID) {
log_err(info->ctx,
"Illegal modifier map definition; "
if (ndx == XKB_MOD_INVALID) {
log_err(info->ctx,
"Illegal modifier map definition; "