Lines Matching refs:xkb

43 XkbAllocClientMap(XkbDescPtr xkb, unsigned which, unsigned nTotalTypes)  in XkbAllocClientMap()  argument
48 if ((xkb == NULL) || in XkbAllocClientMap()
52 ((!XkbIsLegalKeycode(xkb->min_key_code)) || in XkbAllocClientMap()
53 (!XkbIsLegalKeycode(xkb->max_key_code)) || in XkbAllocClientMap()
54 (xkb->max_key_code < xkb->min_key_code))) { in XkbAllocClientMap()
56 xkb->min_key_code, xkb->max_key_code); in XkbAllocClientMap()
60 if (xkb->map == NULL) { in XkbAllocClientMap()
64 xkb->map = map; in XkbAllocClientMap()
67 map = xkb->map; in XkbAllocClientMap()
94 int nKeys = XkbNumKeys(xkb); in XkbAllocClientMap()
107 i = xkb->max_key_code + 1; in XkbAllocClientMap()
114 if ((!XkbIsLegalKeycode(xkb->min_key_code)) || in XkbAllocClientMap()
115 (!XkbIsLegalKeycode(xkb->max_key_code)) || in XkbAllocClientMap()
116 (xkb->max_key_code < xkb->min_key_code)) in XkbAllocClientMap()
119 i = xkb->max_key_code + 1; in XkbAllocClientMap()
129 XkbAllocServerMap(XkbDescPtr xkb, unsigned which, unsigned nNewActions) in XkbAllocServerMap() argument
134 if (xkb == NULL) in XkbAllocServerMap()
136 if (xkb->server == NULL) { in XkbAllocServerMap()
143 xkb->server = map; in XkbAllocServerMap()
146 map = xkb->server; in XkbAllocServerMap()
148 if ((!XkbIsLegalKeycode(xkb->min_key_code)) || in XkbAllocServerMap()
149 (!XkbIsLegalKeycode(xkb->max_key_code)) || in XkbAllocServerMap()
150 (xkb->max_key_code < xkb->min_key_code)) in XkbAllocServerMap()
153 i = xkb->max_key_code + 1; in XkbAllocServerMap()
160 if ((!XkbIsLegalKeycode(xkb->min_key_code)) || in XkbAllocServerMap()
161 (!XkbIsLegalKeycode(xkb->max_key_code)) || in XkbAllocServerMap()
162 (xkb->max_key_code < xkb->min_key_code)) in XkbAllocServerMap()
189 i = xkb->max_key_code + 1; in XkbAllocServerMap()
196 if ((!XkbIsLegalKeycode(xkb->min_key_code)) || in XkbAllocServerMap()
197 (!XkbIsLegalKeycode(xkb->max_key_code)) || in XkbAllocServerMap()
198 (xkb->max_key_code < xkb->min_key_code)) in XkbAllocServerMap()
201 i = xkb->max_key_code + 1; in XkbAllocServerMap()
208 if ((!XkbIsLegalKeycode(xkb->min_key_code)) || in XkbAllocServerMap()
209 (!XkbIsLegalKeycode(xkb->max_key_code)) || in XkbAllocServerMap()
210 (xkb->max_key_code < xkb->min_key_code)) in XkbAllocServerMap()
213 i = xkb->max_key_code + 1; in XkbAllocServerMap()
275 XkbResizeKeyType(XkbDescPtr xkb, in XkbResizeKeyType() argument
282 if ((type_ndx < 0) || (type_ndx >= xkb->map->num_types) || (map_count < 0) in XkbResizeKeyType()
297 type = &xkb->map->types[type_ndx]; in XkbResizeKeyType()
374 for (nTotal = 1, i = xkb->min_key_code; i <= xkb->max_key_code; i++) { in XkbResizeKeyType()
375 width = XkbKeyGroupsWidth(xkb, i); in XkbResizeKeyType()
377 nTotal += XkbKeyNumSyms(xkb,i); in XkbResizeKeyType()
380 for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1; in XkbResizeKeyType()
382 if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) { in XkbResizeKeyType()
388 nTotal += XkbKeyNumSyms(xkb, i); in XkbResizeKeyType()
390 nTotal += XkbKeyNumGroups(xkb, i) * new_num_lvls; in XkbResizeKeyType()
397 xkb->map->size_syms = (nTotal * 15) / 10; in XkbResizeKeyType()
398 newSyms = calloc(xkb->map->size_syms, sizeof(KeySym)); in XkbResizeKeyType()
403 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) { in XkbResizeKeyType()
408 width = XkbKeyGroupsWidth(xkb, i); in XkbResizeKeyType()
409 pOld = XkbKeySymsPtr(xkb, i); in XkbResizeKeyType()
410 for (g = XkbKeyNumGroups(xkb, i) - 1; g >= 0; g--) { in XkbResizeKeyType()
414 xkb->map->key_sym_map[i].offset = nSyms; in XkbResizeKeyType()
415 nSyms += XkbKeyNumGroups(xkb, i) * new_num_lvls; in XkbResizeKeyType()
418 memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i), in XkbResizeKeyType()
419 XkbKeyNumSyms(xkb, i) * sizeof(KeySym)); in XkbResizeKeyType()
420 xkb->map->key_sym_map[i].offset = nSyms; in XkbResizeKeyType()
421 nSyms += XkbKeyNumSyms(xkb, i); in XkbResizeKeyType()
425 free(xkb->map->syms); in XkbResizeKeyType()
426 xkb->map->syms = newSyms; in XkbResizeKeyType()
427 xkb->map->num_syms = nSyms; in XkbResizeKeyType()
435 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) { in XkbResizeKeyType()
436 width = XkbKeyGroupsWidth(xkb, i); in XkbResizeKeyType()
439 for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1; in XkbResizeKeyType()
441 if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) { in XkbResizeKeyType()
461 width = XkbKeyGroupsWidth(xkb, key); in XkbResizeKeyType()
463 pSyms = XkbKeySymsPtr(xkb, key); in XkbResizeKeyType()
464 for (g = XkbKeyNumGroups(xkb, key) - 1; g >= 0; g--) { in XkbResizeKeyType()
465 if (XkbKeyKeyTypeIndex(xkb, key, g) == type_ndx) { in XkbResizeKeyType()
478 XkbResizeKeySyms(XkbDescPtr xkb, int key, int needed) in XkbResizeKeySyms() argument
485 xkb->map->key_sym_map[key].offset = 0; in XkbResizeKeySyms()
486 return xkb->map->syms; in XkbResizeKeySyms()
488 nOldSyms = XkbKeyNumSyms(xkb, key); in XkbResizeKeySyms()
490 return XkbKeySymsPtr(xkb, key); in XkbResizeKeySyms()
492 if (xkb->map->size_syms - xkb->map->num_syms >= (unsigned) needed) { in XkbResizeKeySyms()
494 memcpy(&xkb->map->syms[xkb->map->num_syms], XkbKeySymsPtr(xkb, key), in XkbResizeKeySyms()
498 memset(&xkb->map-> in XkbResizeKeySyms()
499 syms[xkb->map->num_syms + XkbKeyNumSyms(xkb, key)], 0, in XkbResizeKeySyms()
502 xkb->map->key_sym_map[key].offset = xkb->map->num_syms; in XkbResizeKeySyms()
503 xkb->map->num_syms += needed; in XkbResizeKeySyms()
504 return &xkb->map->syms[xkb->map->key_sym_map[key].offset]; in XkbResizeKeySyms()
506 xkb->map->size_syms += (needed > 32 ? needed : 32); in XkbResizeKeySyms()
507 newSyms = calloc(xkb->map->size_syms, sizeof(KeySym)); in XkbResizeKeySyms()
512 for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) { in XkbResizeKeySyms()
515 nCopy = nKeySyms = XkbKeyNumSyms(xkb, i); in XkbResizeKeySyms()
521 memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i), in XkbResizeKeySyms()
526 xkb->map->key_sym_map[i].offset = nSyms; in XkbResizeKeySyms()
529 free(xkb->map->syms); in XkbResizeKeySyms()
530 xkb->map->syms = newSyms; in XkbResizeKeySyms()
531 xkb->map->num_syms = nSyms; in XkbResizeKeySyms()
532 return &xkb->map->syms[xkb->map->key_sym_map[key].offset]; in XkbResizeKeySyms()
560 XkbChangeKeycodeRange(XkbDescPtr xkb, in XkbChangeKeycodeRange() argument
565 if ((!xkb) || (minKC < XkbMinLegalKeyCode) || (maxKC > XkbMaxLegalKeyCode)) in XkbChangeKeycodeRange()
569 if (minKC < xkb->min_key_code) { in XkbChangeKeycodeRange()
572 tmp = xkb->min_key_code - minKC; in XkbChangeKeycodeRange()
573 if (xkb->map) { in XkbChangeKeycodeRange()
574 if (xkb->map->key_sym_map) { in XkbChangeKeycodeRange()
575 memset((char *) &xkb->map->key_sym_map[minKC], 0, in XkbChangeKeycodeRange()
586 if (xkb->map->modmap) { in XkbChangeKeycodeRange()
587 memset((char *) &xkb->map->modmap[minKC], 0, tmp); in XkbChangeKeycodeRange()
599 if (xkb->server) { in XkbChangeKeycodeRange()
600 if (xkb->server->behaviors) { in XkbChangeKeycodeRange()
601 memset((char *) &xkb->server->behaviors[minKC], 0, in XkbChangeKeycodeRange()
613 if (xkb->server->key_acts) { in XkbChangeKeycodeRange()
614 memset((char *) &xkb->server->key_acts[minKC], 0, in XkbChangeKeycodeRange()
626 if (xkb->server->vmodmap) { in XkbChangeKeycodeRange()
627 memset((char *) &xkb->server->vmodmap[minKC], 0, in XkbChangeKeycodeRange()
640 if ((xkb->names) && (xkb->names->keys)) { in XkbChangeKeycodeRange()
641 memset((char *) &xkb->names->keys[minKC], 0, in XkbChangeKeycodeRange()
650 xkb->min_key_code = minKC; in XkbChangeKeycodeRange()
652 if (maxKC > xkb->max_key_code) { in XkbChangeKeycodeRange()
655 tmp = maxKC - xkb->max_key_code; in XkbChangeKeycodeRange()
656 if (xkb->map) { in XkbChangeKeycodeRange()
657 if (xkb->map->key_sym_map) { in XkbChangeKeycodeRange()
658 XkbSymMapRec *prev_key_sym_map = xkb->map->key_sym_map; in XkbChangeKeycodeRange()
660 xkb->map->key_sym_map = reallocarray(xkb->map->key_sym_map, in XkbChangeKeycodeRange()
663 if (!xkb->map->key_sym_map) { in XkbChangeKeycodeRange()
667 memset((char *) &xkb->map->key_sym_map[xkb->max_key_code], 0, in XkbChangeKeycodeRange()
678 if (xkb->map->modmap) { in XkbChangeKeycodeRange()
679 unsigned char *prev_modmap = xkb->map->modmap; in XkbChangeKeycodeRange()
681 xkb->map->modmap = reallocarray(xkb->map->modmap, in XkbChangeKeycodeRange()
684 if (!xkb->map->modmap) { in XkbChangeKeycodeRange()
688 memset((char *) &xkb->map->modmap[xkb->max_key_code], 0, tmp); in XkbChangeKeycodeRange()
700 if (xkb->server) { in XkbChangeKeycodeRange()
701 if (xkb->server->behaviors) { in XkbChangeKeycodeRange()
702 XkbBehavior *prev_behaviors = xkb->server->behaviors; in XkbChangeKeycodeRange()
704 xkb->server->behaviors = reallocarray(xkb->server->behaviors, in XkbChangeKeycodeRange()
707 if (!xkb->server->behaviors) { in XkbChangeKeycodeRange()
711 memset((char *) &xkb->server->behaviors[xkb->max_key_code], 0, in XkbChangeKeycodeRange()
723 if (xkb->server->key_acts) { in XkbChangeKeycodeRange()
724 unsigned short *prev_key_acts = xkb->server->key_acts; in XkbChangeKeycodeRange()
726 xkb->server->key_acts = reallocarray(xkb->server->key_acts, in XkbChangeKeycodeRange()
729 if (!xkb->server->key_acts) { in XkbChangeKeycodeRange()
733 memset((char *) &xkb->server->key_acts[xkb->max_key_code], 0, in XkbChangeKeycodeRange()
745 if (xkb->server->vmodmap) { in XkbChangeKeycodeRange()
746 unsigned short *prev_vmodmap = xkb->server->vmodmap; in XkbChangeKeycodeRange()
748 xkb->server->vmodmap = reallocarray(xkb->server->vmodmap, in XkbChangeKeycodeRange()
751 if (!xkb->server->vmodmap) { in XkbChangeKeycodeRange()
755 memset((char *) &xkb->server->vmodmap[xkb->max_key_code], 0, in XkbChangeKeycodeRange()
768 if ((xkb->names) && (xkb->names->keys)) { in XkbChangeKeycodeRange()
769 XkbKeyNameRec *prev_keys = xkb->names->keys; in XkbChangeKeycodeRange()
771 xkb->names->keys = reallocarray(xkb->names->keys, in XkbChangeKeycodeRange()
773 if (!xkb->names->keys) { in XkbChangeKeycodeRange()
777 memset((char *) &xkb->names->keys[xkb->max_key_code], 0, in XkbChangeKeycodeRange()
786 xkb->max_key_code = maxKC; in XkbChangeKeycodeRange()
792 XkbResizeKeyActions(XkbDescPtr xkb, int key, int needed) in XkbResizeKeyActions() argument
798 xkb->server->key_acts[key] = 0; in XkbResizeKeyActions()
801 if (XkbKeyHasActions(xkb, key) && in XkbResizeKeyActions()
802 (XkbKeyNumSyms(xkb, key) >= (unsigned) needed)) in XkbResizeKeyActions()
803 return XkbKeyActionsPtr(xkb, key); in XkbResizeKeyActions()
804 if (xkb->server->size_acts - xkb->server->num_acts >= (unsigned) needed) { in XkbResizeKeyActions()
805 xkb->server->key_acts[key] = xkb->server->num_acts; in XkbResizeKeyActions()
806 xkb->server->num_acts += needed; in XkbResizeKeyActions()
807 return &xkb->server->acts[xkb->server->key_acts[key]]; in XkbResizeKeyActions()
809 xkb->server->size_acts = xkb->server->num_acts + needed + 8; in XkbResizeKeyActions()
810 newActs = calloc(xkb->server->size_acts, sizeof(XkbAction)); in XkbResizeKeyActions()
815 for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) { in XkbResizeKeyActions()
818 if ((xkb->server->key_acts[i] == 0) && (i != key)) in XkbResizeKeyActions()
821 nCopy = nKeyActs = XkbKeyNumActions(xkb, i); in XkbResizeKeyActions()
829 memcpy(&newActs[nActs], XkbKeyActionsPtr(xkb, i), in XkbResizeKeyActions()
834 xkb->server->key_acts[i] = nActs; in XkbResizeKeyActions()
837 free(xkb->server->acts); in XkbResizeKeyActions()
838 xkb->server->acts = newActs; in XkbResizeKeyActions()
839 xkb->server->num_acts = nActs; in XkbResizeKeyActions()
840 return &xkb->server->acts[xkb->server->key_acts[key]]; in XkbResizeKeyActions()
844 XkbFreeClientMap(XkbDescPtr xkb, unsigned what, Bool freeMap) in XkbFreeClientMap() argument
848 if ((xkb == NULL) || (xkb->map == NULL)) in XkbFreeClientMap()
852 map = xkb->map; in XkbFreeClientMap()
888 free(xkb->map); in XkbFreeClientMap()
889 xkb->map = NULL; in XkbFreeClientMap()
895 XkbFreeServerMap(XkbDescPtr xkb, unsigned what, Bool freeMap) in XkbFreeServerMap() argument
899 if ((xkb == NULL) || (xkb->server == NULL)) in XkbFreeServerMap()
903 map = xkb->server; in XkbFreeServerMap()
927 free(xkb->server); in XkbFreeServerMap()
928 xkb->server = NULL; in XkbFreeServerMap()