Lines Matching refs:xkb
46 XkbKeyTypesForCoreSymbols(XkbDescPtr xkb,
62 if ((protected & (1 << i)) && (types_inout[i] < xkb->map->num_types)) {
63 nSyms[i] = xkb->map->types[types_inout[i]].num_levels;
232 allOneLevel = (xkb->map->types[types_inout[0]].num_levels == 1);
238 allOneLevel = (xkb->map->types[types_inout[i]].num_levels == 1);
278 _XkbFindMatchingInterp(XkbDescPtr xkb,
286 interp = xkb->compat->sym_interpret;
287 for (i = 0; i < xkb->compat->num_si; i++, interp++) {
345 _XkbSetActionKeyMods(XkbDescPtr xkb, XkbAction *act, unsigned mods)
356 XkbVirtualModsToReal(xkb, tmp, &tmp);
364 XkbVirtualModsToReal(xkb, tmp, &tmp);
375 XkbApplyCompatMapToKey(XkbDescPtr xkb, KeyCode key, XkbChangesPtr changes)
383 if ((!xkb) || (!xkb->map) || (!xkb->map->key_sym_map) ||
384 (!xkb->compat) || (!xkb->compat->sym_interpret) ||
385 (key < xkb->min_key_code) || (key > xkb->max_key_code)) {
388 if (((!xkb->server) || (!xkb->server->key_acts)) &&
389 (XkbAllocServerMap(xkb, XkbAllServerInfoMask, 0) != Success)) {
393 explicit = xkb->server->explicit[key];
396 mods = (xkb->map->modmap ? xkb->map->modmap[key] : 0);
397 nSyms = XkbKeyNumSyms(xkb, key);
398 syms = XkbKeySymsPtr(xkb, key);
411 unsigned level = (n % XkbKeyGroupsWidth(xkb, key));
415 interps[n] = _XkbFindMatchingInterp(xkb, syms[n], mods, level);
424 if (xkb->server->key_acts[key] != 0) {
425 xkb->server->key_acts[key] = 0;
434 pActs = XkbResizeKeyActions(xkb, key, nSyms);
453 _XkbSetActionKeyMods(xkb, &pActs[n], effMods);
459 (xkb->server->vmodmap[key] != new_vmodmask)) {
461 xkb->server->vmodmap[key] = new_vmodmask;
466 xkb->server->behaviors[key].type = XkbKB_Lock;
469 if (((explicit & XkbExplicitAutoRepeatMask) == 0) && (xkb->ctrls)) {
472 old = BitIsOn(xkb->ctrls->per_key_repeat, key);
474 SetBit(xkb->ctrls->per_key_repeat, key);
476 ClearBit(xkb->ctrls->per_key_repeat, key);
477 if (changes && old != BitIsOn(xkb->ctrls->per_key_repeat, key))
483 if (((explicit & XkbExplicitAutoRepeatMask) == 0) && (xkb->ctrls)) {
486 old = BitIsOn(xkb->ctrls->per_key_repeat, key);
487 SetBit(xkb->ctrls->per_key_repeat, key);
488 if (changes && (old != BitIsOn(xkb->ctrls->per_key_repeat, key)))
492 (xkb->server->behaviors[key].type == XkbKB_Lock)) {
493 xkb->server->behaviors[key].type = XkbKB_Default;
534 XkbChangeTypesOfKey(XkbDescPtr xkb,
543 if ((!xkb) || (!XkbKeycodeInRange(xkb, key)) || (!xkb->map) ||
544 (!xkb->map->types) || (!newTypesIn) ||
550 xkb->map->key_sym_map[key].kt_index[i] = XkbOneLevelIndex;
552 i = xkb->map->key_sym_map[key].group_info;
554 xkb->map->key_sym_map[key].group_info = i;
555 XkbResizeKeySyms(xkb, key, 0);
556 XkbResizeKeyActions(xkb, key, 0);
560 nOldGroups = XkbKeyNumGroups(xkb, key);
561 oldWidth = XkbKeyGroupsWidth(xkb, key);
566 newTypes[i] = XkbKeyKeyTypeIndex(xkb, key, i);
568 newTypes[i] = XkbKeyKeyTypeIndex(xkb, key, XkbGroup1Index);
571 if (newTypes[i] > xkb->map->num_types)
573 pNewType = &xkb->map->types[newTypes[i]];
577 if ((xkb->ctrls) && (nGroups > xkb->ctrls->num_groups))
578 xkb->ctrls->num_groups = nGroups;
584 pSyms = XkbResizeKeySyms(xkb, key, width * nGroups);
586 i = xkb->map->key_sym_map[key].group_info;
588 xkb->map->key_sym_map[key].group_info = i;
589 xkb->map->key_sym_map[key].width = width;
591 xkb->map->key_sym_map[key].kt_index[i] = newTypes[i];
597 pSyms = XkbKeySymsPtr(xkb, key);
598 memcpy(oldSyms, pSyms, XkbKeyNumSyms(xkb, key) * sizeof(KeySym));
599 pSyms = XkbResizeKeySyms(xkb, key, width * nGroups);
604 pOldType = XkbKeyKeyType(xkb, key, i);
605 pNewType = &xkb->map->types[newTypes[i]];
613 if (XkbKeyHasActions(xkb, key)) {
616 pActs = XkbKeyActionsPtr(xkb, key);
617 memcpy(oldActs, pActs, XkbKeyNumSyms(xkb, key) * sizeof(XkbAction));
618 pActs = XkbResizeKeyActions(xkb, key, width * nGroups);
623 pOldType = XkbKeyKeyType(xkb, key, i);
624 pNewType = &xkb->map->types[newTypes[i]];
633 i = xkb->map->key_sym_map[key].group_info;
635 xkb->map->key_sym_map[key].group_info = i;
636 xkb->map->key_sym_map[key].width = width;
640 xkb->map->key_sym_map[key].kt_index[i] = newTypes[i];
641 if (xkb->map->types[newTypes[i]].num_levels > width)
642 width = xkb->map->types[newTypes[i]].num_levels;
644 xkb->map->key_sym_map[key].width = width;
662 XkbVirtualModsToReal(XkbDescPtr xkb, unsigned virtual_mask, unsigned *mask_rtrn)
667 if ((xkb == NULL) || (xkb->server == NULL)) {
677 mask |= xkb->server->vmods[i];
686 XkbUpdateActionVirtualMods(XkbDescPtr xkb, XkbAction *act, unsigned changed)
695 XkbVirtualModsToReal(xkb, tmp, &tmp);
703 XkbVirtualModsToReal(xkb, tmp, &tmp);
714 XkbUpdateKeyTypeVirtualMods(XkbDescPtr xkb,
721 XkbVirtualModsToReal(xkb, type->mods.vmods, &mask);
728 XkbVirtualModsToReal(xkb, entry->mods.vmods, &mask);
740 type_ndx = type - xkb->map->types;
741 if ((type_ndx < 0) || (type_ndx > xkb->map->num_types))
766 XkbApplyVirtualModChanges(XkbDescPtr xkb, unsigned changed,
772 if ((!xkb) || (!xkb->map) || (changed == 0))
774 for (i = 0; i < xkb->map->num_types; i++) {
775 if (xkb->map->types[i].mods.vmods & changed)
776 XkbUpdateKeyTypeVirtualMods(xkb, &xkb->map->types[i], changed,
779 if (changed & xkb->ctrls->internal.vmods) {
782 XkbVirtualModsToReal(xkb, xkb->ctrls->internal.vmods, &newMask);
783 newMask |= xkb->ctrls->internal.real_mods;
784 if (xkb->ctrls->internal.mask != newMask) {
785 xkb->ctrls->internal.mask = newMask;
792 if (changed & xkb->ctrls->ignore_lock.vmods) {
795 XkbVirtualModsToReal(xkb, xkb->ctrls->ignore_lock.vmods, &newMask);
796 newMask |= xkb->ctrls->ignore_lock.real_mods;
797 if (xkb->ctrls->ignore_lock.mask != newMask) {
798 xkb->ctrls->ignore_lock.mask = newMask;
805 if (xkb->indicators != NULL) {
808 map = &xkb->indicators->maps[0];
813 XkbVirtualModsToReal(xkb, map->mods.vmods, &newMask);
825 if (xkb->compat != NULL) {
828 compat = xkb->compat;
832 XkbVirtualModsToReal(xkb, compat->groups[i].vmods, &newMask);
843 if (xkb->map && xkb->server) {
846 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
847 if (XkbKeyHasActions(xkb, i)) {
851 pAct = XkbKeyActionsPtr(xkb, i);
852 for (n = XkbKeyNumActions(xkb, i); n > 0; n--, pAct++) {
854 XkbUpdateActionVirtualMods(xkb, pAct, changed)) {