Lines Matching refs:xkb
46 XkbKeyTypesForCoreSymbols(XkbDescPtr xkb, in XkbKeyTypesForCoreSymbols() argument
62 if ((protected & (1 << i)) && (types_inout[i] < xkb->map->num_types)) { in XkbKeyTypesForCoreSymbols()
63 nSyms[i] = xkb->map->types[types_inout[i]].num_levels; in XkbKeyTypesForCoreSymbols()
232 allOneLevel = (xkb->map->types[types_inout[0]].num_levels == 1); in XkbKeyTypesForCoreSymbols()
238 allOneLevel = (xkb->map->types[types_inout[i]].num_levels == 1); in XkbKeyTypesForCoreSymbols()
278 _XkbFindMatchingInterp(XkbDescPtr xkb, in _XkbFindMatchingInterp() argument
286 interp = xkb->compat->sym_interpret; in _XkbFindMatchingInterp()
287 for (i = 0; i < xkb->compat->num_si; i++, interp++) { in _XkbFindMatchingInterp()
345 _XkbSetActionKeyMods(XkbDescPtr xkb, XkbAction *act, unsigned mods) in _XkbSetActionKeyMods() argument
356 XkbVirtualModsToReal(xkb, tmp, &tmp); in _XkbSetActionKeyMods()
364 XkbVirtualModsToReal(xkb, tmp, &tmp); in _XkbSetActionKeyMods()
375 XkbApplyCompatMapToKey(XkbDescPtr xkb, KeyCode key, XkbChangesPtr changes) in XkbApplyCompatMapToKey() argument
383 if ((!xkb) || (!xkb->map) || (!xkb->map->key_sym_map) || in XkbApplyCompatMapToKey()
384 (!xkb->compat) || (!xkb->compat->sym_interpret) || in XkbApplyCompatMapToKey()
385 (key < xkb->min_key_code) || (key > xkb->max_key_code)) { in XkbApplyCompatMapToKey()
388 if (((!xkb->server) || (!xkb->server->key_acts)) && in XkbApplyCompatMapToKey()
389 (XkbAllocServerMap(xkb, XkbAllServerInfoMask, 0) != Success)) { in XkbApplyCompatMapToKey()
393 explicit = xkb->server->explicit[key]; in XkbApplyCompatMapToKey()
396 mods = (xkb->map->modmap ? xkb->map->modmap[key] : 0); in XkbApplyCompatMapToKey()
397 nSyms = XkbKeyNumSyms(xkb, key); in XkbApplyCompatMapToKey()
398 syms = XkbKeySymsPtr(xkb, key); in XkbApplyCompatMapToKey()
411 unsigned level = (n % XkbKeyGroupsWidth(xkb, key)); in XkbApplyCompatMapToKey()
415 interps[n] = _XkbFindMatchingInterp(xkb, syms[n], mods, level); in XkbApplyCompatMapToKey()
424 if (xkb->server->key_acts[key] != 0) { in XkbApplyCompatMapToKey()
425 xkb->server->key_acts[key] = 0; in XkbApplyCompatMapToKey()
434 pActs = XkbResizeKeyActions(xkb, key, nSyms); in XkbApplyCompatMapToKey()
453 _XkbSetActionKeyMods(xkb, &pActs[n], effMods); in XkbApplyCompatMapToKey()
459 (xkb->server->vmodmap[key] != new_vmodmask)) { in XkbApplyCompatMapToKey()
461 xkb->server->vmodmap[key] = new_vmodmask; in XkbApplyCompatMapToKey()
466 xkb->server->behaviors[key].type = XkbKB_Lock; in XkbApplyCompatMapToKey()
469 if (((explicit & XkbExplicitAutoRepeatMask) == 0) && (xkb->ctrls)) { in XkbApplyCompatMapToKey()
472 old = BitIsOn(xkb->ctrls->per_key_repeat, key); in XkbApplyCompatMapToKey()
474 SetBit(xkb->ctrls->per_key_repeat, key); in XkbApplyCompatMapToKey()
476 ClearBit(xkb->ctrls->per_key_repeat, key); in XkbApplyCompatMapToKey()
477 if (changes && old != BitIsOn(xkb->ctrls->per_key_repeat, key)) in XkbApplyCompatMapToKey()
483 if (((explicit & XkbExplicitAutoRepeatMask) == 0) && (xkb->ctrls)) { in XkbApplyCompatMapToKey()
486 old = BitIsOn(xkb->ctrls->per_key_repeat, key); in XkbApplyCompatMapToKey()
487 SetBit(xkb->ctrls->per_key_repeat, key); in XkbApplyCompatMapToKey()
488 if (changes && (old != BitIsOn(xkb->ctrls->per_key_repeat, key))) in XkbApplyCompatMapToKey()
492 (xkb->server->behaviors[key].type == XkbKB_Lock)) { in XkbApplyCompatMapToKey()
493 xkb->server->behaviors[key].type = XkbKB_Default; in XkbApplyCompatMapToKey()
534 XkbChangeTypesOfKey(XkbDescPtr xkb, in XkbChangeTypesOfKey() argument
543 if ((!xkb) || (!XkbKeycodeInRange(xkb, key)) || (!xkb->map) || in XkbChangeTypesOfKey()
544 (!xkb->map->types) || (!newTypesIn) || in XkbChangeTypesOfKey()
550 xkb->map->key_sym_map[key].kt_index[i] = XkbOneLevelIndex; in XkbChangeTypesOfKey()
552 i = xkb->map->key_sym_map[key].group_info; in XkbChangeTypesOfKey()
554 xkb->map->key_sym_map[key].group_info = i; in XkbChangeTypesOfKey()
555 XkbResizeKeySyms(xkb, key, 0); in XkbChangeTypesOfKey()
559 nOldGroups = XkbKeyNumGroups(xkb, key); in XkbChangeTypesOfKey()
560 oldWidth = XkbKeyGroupsWidth(xkb, key); in XkbChangeTypesOfKey()
565 newTypes[i] = XkbKeyKeyTypeIndex(xkb, key, i); in XkbChangeTypesOfKey()
567 newTypes[i] = XkbKeyKeyTypeIndex(xkb, key, XkbGroup1Index); in XkbChangeTypesOfKey()
570 if (newTypes[i] > xkb->map->num_types) in XkbChangeTypesOfKey()
572 pNewType = &xkb->map->types[newTypes[i]]; in XkbChangeTypesOfKey()
576 if ((xkb->ctrls) && (nGroups > xkb->ctrls->num_groups)) in XkbChangeTypesOfKey()
577 xkb->ctrls->num_groups = nGroups; in XkbChangeTypesOfKey()
583 pSyms = XkbResizeKeySyms(xkb, key, width * nGroups); in XkbChangeTypesOfKey()
585 i = xkb->map->key_sym_map[key].group_info; in XkbChangeTypesOfKey()
587 xkb->map->key_sym_map[key].group_info = i; in XkbChangeTypesOfKey()
588 xkb->map->key_sym_map[key].width = width; in XkbChangeTypesOfKey()
590 xkb->map->key_sym_map[key].kt_index[i] = newTypes[i]; in XkbChangeTypesOfKey()
596 pSyms = XkbKeySymsPtr(xkb, key); in XkbChangeTypesOfKey()
597 memcpy(oldSyms, pSyms, XkbKeyNumSyms(xkb, key) * sizeof(KeySym)); in XkbChangeTypesOfKey()
598 pSyms = XkbResizeKeySyms(xkb, key, width * nGroups); in XkbChangeTypesOfKey()
603 pOldType = XkbKeyKeyType(xkb, key, i); in XkbChangeTypesOfKey()
604 pNewType = &xkb->map->types[newTypes[i]]; in XkbChangeTypesOfKey()
612 if (XkbKeyHasActions(xkb, key)) { in XkbChangeTypesOfKey()
615 pActs = XkbKeyActionsPtr(xkb, key); in XkbChangeTypesOfKey()
616 memcpy(oldActs, pActs, XkbKeyNumSyms(xkb, key) * sizeof(XkbAction)); in XkbChangeTypesOfKey()
617 pActs = XkbResizeKeyActions(xkb, key, width * nGroups); in XkbChangeTypesOfKey()
622 pOldType = XkbKeyKeyType(xkb, key, i); in XkbChangeTypesOfKey()
623 pNewType = &xkb->map->types[newTypes[i]]; in XkbChangeTypesOfKey()
632 i = xkb->map->key_sym_map[key].group_info; in XkbChangeTypesOfKey()
634 xkb->map->key_sym_map[key].group_info = i; in XkbChangeTypesOfKey()
635 xkb->map->key_sym_map[key].width = width; in XkbChangeTypesOfKey()
639 xkb->map->key_sym_map[key].kt_index[i] = newTypes[i]; in XkbChangeTypesOfKey()
640 if (xkb->map->types[newTypes[i]].num_levels > width) in XkbChangeTypesOfKey()
641 width = xkb->map->types[newTypes[i]].num_levels; in XkbChangeTypesOfKey()
643 xkb->map->key_sym_map[key].width = width; in XkbChangeTypesOfKey()
661 XkbVirtualModsToReal(XkbDescPtr xkb, unsigned virtual_mask, unsigned *mask_rtrn) in XkbVirtualModsToReal() argument
666 if (xkb == NULL) in XkbVirtualModsToReal()
672 if (xkb->server == NULL) in XkbVirtualModsToReal()
676 mask |= xkb->server->vmods[i]; in XkbVirtualModsToReal()
685 XkbUpdateActionVirtualMods(XkbDescPtr xkb, XkbAction *act, unsigned changed) in XkbUpdateActionVirtualMods() argument
694 XkbVirtualModsToReal(xkb, tmp, &tmp); in XkbUpdateActionVirtualMods()
702 XkbVirtualModsToReal(xkb, tmp, &tmp); in XkbUpdateActionVirtualMods()
713 XkbUpdateKeyTypeVirtualMods(XkbDescPtr xkb, in XkbUpdateKeyTypeVirtualMods() argument
720 XkbVirtualModsToReal(xkb, type->mods.vmods, &mask); in XkbUpdateKeyTypeVirtualMods()
727 XkbVirtualModsToReal(xkb, entry->mods.vmods, &mask); in XkbUpdateKeyTypeVirtualMods()
739 type_ndx = type - xkb->map->types; in XkbUpdateKeyTypeVirtualMods()
740 if ((type_ndx < 0) || (type_ndx > xkb->map->num_types)) in XkbUpdateKeyTypeVirtualMods()
765 XkbApplyVirtualModChanges(XkbDescPtr xkb, unsigned changed, in XkbApplyVirtualModChanges() argument
771 if ((!xkb) || (!xkb->map) || (changed == 0)) in XkbApplyVirtualModChanges()
773 for (i = 0; i < xkb->map->num_types; i++) { in XkbApplyVirtualModChanges()
774 if (xkb->map->types[i].mods.vmods & changed) in XkbApplyVirtualModChanges()
775 XkbUpdateKeyTypeVirtualMods(xkb, &xkb->map->types[i], changed, in XkbApplyVirtualModChanges()
778 if (changed & xkb->ctrls->internal.vmods) { in XkbApplyVirtualModChanges()
781 XkbVirtualModsToReal(xkb, xkb->ctrls->internal.vmods, &newMask); in XkbApplyVirtualModChanges()
782 newMask |= xkb->ctrls->internal.real_mods; in XkbApplyVirtualModChanges()
783 if (xkb->ctrls->internal.mask != newMask) { in XkbApplyVirtualModChanges()
784 xkb->ctrls->internal.mask = newMask; in XkbApplyVirtualModChanges()
791 if (changed & xkb->ctrls->ignore_lock.vmods) { in XkbApplyVirtualModChanges()
794 XkbVirtualModsToReal(xkb, xkb->ctrls->ignore_lock.vmods, &newMask); in XkbApplyVirtualModChanges()
795 newMask |= xkb->ctrls->ignore_lock.real_mods; in XkbApplyVirtualModChanges()
796 if (xkb->ctrls->ignore_lock.mask != newMask) { in XkbApplyVirtualModChanges()
797 xkb->ctrls->ignore_lock.mask = newMask; in XkbApplyVirtualModChanges()
804 if (xkb->indicators != NULL) { in XkbApplyVirtualModChanges()
807 map = &xkb->indicators->maps[0]; in XkbApplyVirtualModChanges()
812 XkbVirtualModsToReal(xkb, map->mods.vmods, &newMask); in XkbApplyVirtualModChanges()
824 if (xkb->compat != NULL) { in XkbApplyVirtualModChanges()
827 compat = xkb->compat; in XkbApplyVirtualModChanges()
831 XkbVirtualModsToReal(xkb, compat->groups[i].vmods, &newMask); in XkbApplyVirtualModChanges()
842 if (xkb->map && xkb->server) { in XkbApplyVirtualModChanges()
845 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) { in XkbApplyVirtualModChanges()
846 if (XkbKeyHasActions(xkb, i)) { in XkbApplyVirtualModChanges()
850 pAct = XkbKeyActionsPtr(xkb, i); in XkbApplyVirtualModChanges()
851 for (n = XkbKeyNumActions(xkb, i); n > 0; n--, pAct++) { in XkbApplyVirtualModChanges()
853 XkbUpdateActionVirtualMods(xkb, pAct, changed)) { in XkbApplyVirtualModChanges()