Lines Matching refs:keyi
141 InitKeyInfo(struct xkb_context *ctx, KeyInfo *keyi) in InitKeyInfo() argument
143 memset(keyi, 0, sizeof(*keyi)); in InitKeyInfo()
144 keyi->merge = MERGE_OVERRIDE; in InitKeyInfo()
145 keyi->name = xkb_atom_intern_literal(ctx, "*"); in InitKeyInfo()
146 keyi->out_of_range_group_action = RANGE_WRAP; in InitKeyInfo()
150 ClearKeyInfo(KeyInfo *keyi) in ClearKeyInfo() argument
153 darray_foreach(groupi, keyi->groups) in ClearKeyInfo()
155 darray_free(keyi->groups); in ClearKeyInfo()
204 KeyInfo *keyi; in ClearSymbolsInfo() local
206 darray_foreach(keyi, info->keys) in ClearSymbolsInfo()
207 ClearKeyInfo(keyi); in ClearSymbolsInfo()
215 KeyInfoText(SymbolsInfo *info, KeyInfo *keyi) in KeyInfoText() argument
217 return KeyNameText(info->ctx, keyi->name); in KeyInfoText()
429 AddKeySymbols(SymbolsInfo *info, KeyInfo *keyi, bool same_file) in AddKeySymbols() argument
440 real_name = XkbResolveKeyAlias(info->keymap, keyi->name); in AddKeySymbols()
442 keyi->name = real_name; in AddKeySymbols()
445 if (iter->name == keyi->name) in AddKeySymbols()
446 return MergeKeys(info, iter, keyi, same_file); in AddKeySymbols()
448 darray_append(info->keys, *keyi); in AddKeySymbols()
449 InitKeyInfo(info->ctx, keyi); in AddKeySymbols()
502 KeyInfo *keyi; in MergeIncludedSymbols() local
539 darray_foreach(keyi, from->keys) { in MergeIncludedSymbols()
540 keyi->merge = (merge == MERGE_DEFAULT ? keyi->merge : merge); in MergeIncludedSymbols()
541 if (!AddKeySymbols(into, keyi, false)) in MergeIncludedSymbols()
616 GetGroupIndex(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx, in GetGroupIndex() argument
627 darray_enumerate(i, groupi, keyi->groups) { in GetGroupIndex()
638 name, KeyInfoText(info, keyi), XKB_MAX_GROUPS, name); in GetGroupIndex()
642 darray_resize0(keyi->groups, darray_size(keyi->groups) + 1); in GetGroupIndex()
643 *ndx_rtrn = darray_size(keyi->groups) - 1; in GetGroupIndex()
651 name, KeyInfoText(info, keyi)); in GetGroupIndex()
656 if (*ndx_rtrn >= darray_size(keyi->groups)) in GetGroupIndex()
657 darray_resize0(keyi->groups, *ndx_rtrn + 1); in GetGroupIndex()
663 AddSymbolsToKey(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx, in AddSymbolsToKey() argument
670 if (!GetGroupIndex(info, keyi, arrayNdx, SYMBOLS, &ndx)) in AddSymbolsToKey()
673 groupi = &darray_item(keyi->groups, ndx); in AddSymbolsToKey()
685 KeyInfoText(info, keyi)); in AddSymbolsToKey()
693 KeyInfoText(info, keyi), ndx + 1); in AddSymbolsToKey()
732 AddActionsToKey(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx, in AddActionsToKey() argument
740 if (!GetGroupIndex(info, keyi, arrayNdx, ACTIONS, &ndx)) in AddActionsToKey()
743 groupi = &darray_item(keyi->groups, ndx); in AddActionsToKey()
754 value->expr.op, ndx, KeyInfoText(info, keyi)); in AddActionsToKey()
761 KeyInfoText(info, keyi), ndx); in AddActionsToKey()
782 KeyInfoText(info, keyi), ndx + 1, i + 1); in AddActionsToKey()
802 SetSymbolsField(SymbolsInfo *info, KeyInfo *keyi, const char *field, in SetSymbolsField() argument
817 keyi->default_type = val; in SetSymbolsField()
818 keyi->defined |= KEY_FIELD_DEFAULT_TYPE; in SetSymbolsField()
824 KeyInfoText(info, keyi)); in SetSymbolsField()
829 if (ndx >= darray_size(keyi->groups)) in SetSymbolsField()
830 darray_resize0(keyi->groups, ndx + 1); in SetSymbolsField()
831 darray_item(keyi->groups, ndx).type = val; in SetSymbolsField()
832 darray_item(keyi->groups, ndx).defined |= GROUP_FIELD_TYPE; in SetSymbolsField()
836 return AddSymbolsToKey(info, keyi, arrayNdx, value); in SetSymbolsField()
839 return AddActionsToKey(info, keyi, arrayNdx, value); in SetSymbolsField()
852 KeyInfoText(info, keyi)); in SetSymbolsField()
856 keyi->vmodmap = mask; in SetSymbolsField()
857 keyi->defined |= KEY_FIELD_VMODMAP; in SetSymbolsField()
865 KeyInfoText(info, keyi)); in SetSymbolsField()
873 KeyInfoText(info, keyi)); in SetSymbolsField()
880 KeyInfoText(info, keyi)); in SetSymbolsField()
891 KeyInfoText(info, keyi)); in SetSymbolsField()
895 keyi->repeat = val; in SetSymbolsField()
896 keyi->defined |= KEY_FIELD_REPEAT; in SetSymbolsField()
906 KeyInfoText(info, keyi)); in SetSymbolsField()
910 keyi->out_of_range_group_action = (set ? RANGE_WRAP : RANGE_SATURATE); in SetSymbolsField()
911 keyi->defined |= KEY_FIELD_GROUPINFO; in SetSymbolsField()
921 KeyInfoText(info, keyi)); in SetSymbolsField()
925 keyi->out_of_range_group_action = (set ? RANGE_SATURATE : RANGE_WRAP); in SetSymbolsField()
926 keyi->defined |= KEY_FIELD_GROUPINFO; in SetSymbolsField()
936 KeyInfoText(info, keyi)); in SetSymbolsField()
940 keyi->out_of_range_group_action = RANGE_REDIRECT; in SetSymbolsField()
941 keyi->out_of_range_group_number = grp - 1; in SetSymbolsField()
942 keyi->defined |= KEY_FIELD_GROUPINFO; in SetSymbolsField()
1056 HandleSymbolsBody(SymbolsInfo *info, VarDef *def, KeyInfo *keyi) in HandleSymbolsBody() argument
1083 ok = SetSymbolsField(info, keyi, field, arrayNdx, def->value); in HandleSymbolsBody()
1090 SetExplicitGroup(SymbolsInfo *info, KeyInfo *keyi) in SetExplicitGroup() argument
1099 darray_enumerate_from(i, groupi, keyi->groups, 1) { in SetExplicitGroup()
1112 info->name, KeyInfoText(info, keyi)); in SetExplicitGroup()
1114 darray_resize0(keyi->groups, info->explicit_group + 1); in SetExplicitGroup()
1116 darray_item(keyi->groups, info->explicit_group) = in SetExplicitGroup()
1117 darray_item(keyi->groups, 0); in SetExplicitGroup()
1118 InitGroupInfo(&darray_item(keyi->groups, 0)); in SetExplicitGroup()
1127 KeyInfo keyi; in HandleSymbolsDef() local
1129 keyi = info->default_key; in HandleSymbolsDef()
1130 darray_init(keyi.groups); in HandleSymbolsDef()
1131 darray_copy(keyi.groups, info->default_key.groups); in HandleSymbolsDef()
1132 for (xkb_layout_index_t i = 0; i < darray_size(keyi.groups); i++) in HandleSymbolsDef()
1133 CopyGroupInfo(&darray_item(keyi.groups, i), in HandleSymbolsDef()
1135 keyi.merge = stmt->merge; in HandleSymbolsDef()
1136 keyi.name = stmt->keyName; in HandleSymbolsDef()
1138 if (!HandleSymbolsBody(info, stmt->symbols, &keyi)) { in HandleSymbolsDef()
1143 if (!SetExplicitGroup(info, &keyi)) { in HandleSymbolsDef()
1148 if (!AddKeySymbols(info, &keyi, true)) { in HandleSymbolsDef()
1352 FindTypeForGroup(struct xkb_keymap *keymap, KeyInfo *keyi, in FindTypeForGroup() argument
1356 GroupInfo *groupi = &darray_item(keyi->groups, group); in FindTypeForGroup()
1362 if (keyi->default_type != XKB_ATOM_NONE) { in FindTypeForGroup()
1363 type_name = keyi->default_type; in FindTypeForGroup()
1376 KeyNameText(keymap->ctx, keyi->name), group + 1, in FindTypeForGroup()
1390 KeyNameText(keymap->ctx, keyi->name), group + 1); in FindTypeForGroup()
1406 KeyInfo *keyi) in CopySymbolsDefToKeymap() argument
1417 key = XkbKeyByName(keymap, keyi->name, false); in CopySymbolsDefToKeymap()
1421 KeyInfoText(info, keyi)); in CopySymbolsDefToKeymap()
1427 darray_enumerate(i, groupi, keyi->groups) in CopySymbolsDefToKeymap()
1434 darray_resize(keyi->groups, key->num_groups); in CopySymbolsDefToKeymap()
1441 group0 = &darray_item(keyi->groups, 0); in CopySymbolsDefToKeymap()
1442 darray_foreach_from(groupi, keyi->groups, 1) { in CopySymbolsDefToKeymap()
1452 darray_enumerate(i, groupi, keyi->groups) { in CopySymbolsDefToKeymap()
1456 type = FindTypeForGroup(keymap, keyi, i, &explicit_type); in CopySymbolsDefToKeymap()
1466 KeyInfoText(info, keyi), in CopySymbolsDefToKeymap()
1479 darray_enumerate(i, groupi, keyi->groups) in CopySymbolsDefToKeymap()
1482 key->out_of_range_group_number = keyi->out_of_range_group_number; in CopySymbolsDefToKeymap()
1483 key->out_of_range_group_action = keyi->out_of_range_group_action; in CopySymbolsDefToKeymap()
1485 if (keyi->defined & KEY_FIELD_VMODMAP) { in CopySymbolsDefToKeymap()
1486 key->vmodmap = keyi->vmodmap; in CopySymbolsDefToKeymap()
1490 if (keyi->repeat != KEY_REPEAT_UNDEFINED) { in CopySymbolsDefToKeymap()
1491 key->repeats = (keyi->repeat == KEY_REPEAT_YES); in CopySymbolsDefToKeymap()
1495 darray_foreach(groupi, keyi->groups) { in CopySymbolsDefToKeymap()
1541 KeyInfo *keyi; in CopySymbolsToKeymap() local
1552 darray_foreach(keyi, info->keys) in CopySymbolsToKeymap()
1553 if (!CopySymbolsDefToKeymap(keymap, info, keyi)) in CopySymbolsToKeymap()