Lines Matching refs:xkb

42 XkbAllocClientMap(XkbDescPtr xkb, unsigned which, unsigned nTotalTypes)
47 if ((xkb == NULL) ||
51 ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
52 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
53 (xkb->max_key_code < xkb->min_key_code))) {
56 xkb->min_key_code, xkb->max_key_code);
61 if (xkb->map == NULL) {
65 xkb->map = map;
68 map = xkb->map;
86 int nKeys = XkbNumKeys(xkb);
99 i = xkb->max_key_code + 1;
106 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
107 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
108 (xkb->max_key_code < xkb->min_key_code))
111 i = xkb->max_key_code + 1;
121 XkbAllocServerMap(XkbDescPtr xkb, unsigned which, unsigned nNewActions)
126 if (xkb == NULL)
128 if (xkb->server == NULL) {
135 xkb->server = map;
138 map = xkb->server;
140 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
141 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
142 (xkb->max_key_code < xkb->min_key_code))
145 i = xkb->max_key_code + 1;
152 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
153 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
154 (xkb->max_key_code < xkb->min_key_code))
175 i = xkb->max_key_code + 1;
182 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
183 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
184 (xkb->max_key_code < xkb->min_key_code))
187 i = xkb->max_key_code + 1;
194 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
195 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
196 (xkb->max_key_code < xkb->min_key_code))
199 i = xkb->max_key_code + 1;
265 XkbAddKeyType(XkbDescPtr xkb,
276 if ((!xkb) || (num_lvls < 1))
278 map = xkb->map;
283 XkbResizeKeyType(xkb, i, map_count, want_preserve,
291 if (XkbAllocClientMap(xkb, XkbKeyTypesMask, tmp) != Success)
294 map = xkb->map;
304 if (XkbInitCanonicalKeyTypes(xkb, tmp, XkbNoModifier) == Success) {
310 status = XkbResizeKeyType(xkb, i, map_count, want_preserve,
317 (XkbAllocClientMap(xkb, XkbKeyTypesMask, map->num_types + 1) !=
346 XkbResizeKeyType(XkbDescPtr xkb,
355 if ((type_ndx < 0) || (type_ndx >= xkb->map->num_types) || (map_count < 0)
370 type = &xkb->map->types[type_ndx];
437 for (nTotal = 1, i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
438 width = XkbKeyGroupsWidth(xkb, i);
440 nTotal += XkbKeyNumSyms(xkb,i);
443 for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1;
445 if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) {
451 nTotal += XkbKeyNumSyms(xkb, i);
453 nTotal += XkbKeyNumGroups(xkb, i) * new_num_lvls;
460 xkb->map->size_syms = (nTotal * 15) / 10;
461 newSyms = _XkbTypedCalloc(xkb->map->size_syms, KeySym);
466 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
471 width = XkbKeyGroupsWidth(xkb, i);
472 pOld = XkbKeySymsPtr(xkb, i);
473 for (g = XkbKeyNumGroups(xkb, i) - 1; g >= 0; g--) {
477 xkb->map->key_sym_map[i].offset = nSyms;
478 nSyms += XkbKeyNumGroups(xkb, i) * new_num_lvls;
481 memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i),
482 XkbKeyNumSyms(xkb, i) * sizeof(KeySym));
483 xkb->map->key_sym_map[i].offset = nSyms;
484 nSyms += XkbKeyNumSyms(xkb, i);
488 _XkbFree(xkb->map->syms);
489 xkb->map->syms = newSyms;
490 xkb->map->num_syms = nSyms;
498 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
499 width = XkbKeyGroupsWidth(xkb, i);
502 for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1;
504 if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) {
524 width = XkbKeyGroupsWidth(xkb, key);
526 pSyms = XkbKeySymsPtr(xkb, key);
527 for (g = XkbKeyNumGroups(xkb, key) - 1; g >= 0; g--) {
528 if (XkbKeyKeyTypeIndex(xkb, key, g) == type_ndx) {
541 XkbResizeKeySyms(XkbDescPtr xkb, int key, int needed)
548 xkb->map->key_sym_map[key].offset = 0;
549 return xkb->map->syms;
551 nOldSyms = XkbKeyNumSyms(xkb, key);
553 return XkbKeySymsPtr(xkb, key);
555 if (xkb->map->size_syms - xkb->map->num_syms >= (unsigned) needed) {
557 memcpy(&xkb->map->syms[xkb->map->num_syms], XkbKeySymsPtr(xkb, key),
561 bzero(&xkb->map->syms[xkb->map->num_syms + XkbKeyNumSyms(xkb, key)],
564 xkb->map->key_sym_map[key].offset = xkb->map->num_syms;
565 xkb->map->num_syms += needed;
566 return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
568 xkb->map->size_syms += (needed > 32 ? needed : 32);
569 newSyms = _XkbTypedCalloc(xkb->map->size_syms, KeySym);
574 for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) {
577 nCopy = nKeySyms = XkbKeyNumSyms(xkb, i);
583 memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i),
587 xkb->map->key_sym_map[i].offset = nSyms;
590 _XkbFree(xkb->map->syms);
591 xkb->map->syms = newSyms;
592 xkb->map->num_syms = nSyms;
593 return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
623 XkbChangeKeycodeRange(XkbDescPtr xkb,
630 if ((!xkb) || (minKC < XkbMinLegalKeyCode) || (maxKC > XkbMaxLegalKeyCode))
634 if (minKC < xkb->min_key_code) {
637 tmp = xkb->min_key_code - minKC;
638 if (xkb->map) {
639 if (xkb->map->key_sym_map) {
640 bzero((char *) &xkb->map->key_sym_map[minKC],
649 if (xkb->map->modmap) {
650 bzero((char *) &xkb->map->modmap[minKC], tmp);
659 if (xkb->server) {
660 if (xkb->server->behaviors) {
661 bzero((char *) &xkb->server->behaviors[minKC],
670 if (xkb->server->key_acts) {
671 bzero((char *) &xkb->server->key_acts[minKC],
680 if (xkb->server->vmodmap) {
681 bzero((char *) &xkb->server->vmodmap[minKC],
691 if ((xkb->names) && (xkb->names->keys)) {
692 bzero((char *) &xkb->names->keys[minKC],
701 xkb->min_key_code = minKC;
703 if (maxKC > xkb->max_key_code) {
706 tmp = maxKC - xkb->max_key_code;
707 if (xkb->map) {
708 if (xkb->map->key_sym_map) {
709 _XkbResizeArray(xkb->map->key_sym_map, xkb->max_key_code + 1,
711 if (!xkb->map->key_sym_map) {
721 if (xkb->map->modmap) {
722 _XkbResizeArray(xkb->map->modmap, xkb->max_key_code + 1,
724 if (!xkb->map->modmap) {
735 if (xkb->server) {
736 if (xkb->server->behaviors) {
737 _XkbResizeArray(xkb->server->behaviors, xkb->max_key_code + 1,
739 if (!xkb->server->behaviors) {
749 if (xkb->server->key_acts) {
750 _XkbResizeArray(xkb->server->key_acts, xkb->max_key_code + 1,
752 if (!xkb->server->key_acts) {
762 if (xkb->server->vmodmap) {
763 _XkbResizeArray(xkb->server->vmodmap, xkb->max_key_code + 1,
765 if (!xkb->server->vmodmap) {
776 if ((xkb->names) && (xkb->names->keys)) {
777 _XkbResizeArray(xkb->names->keys, xkb->max_key_code + 1,
779 if (!xkb->names->keys) {
789 xkb->max_key_code = maxKC;
795 XkbResizeKeyActions(XkbDescPtr xkb, int key, int needed)
801 xkb->server->key_acts[key] = 0;
804 if (XkbKeyHasActions(xkb, key) &&
805 (XkbKeyNumSyms(xkb, key) >= (unsigned) needed))
806 return XkbKeyActionsPtr(xkb, key);
807 if (xkb->server->size_acts - xkb->server->num_acts >= (unsigned) needed) {
808 xkb->server->key_acts[key] = xkb->server->num_acts;
809 xkb->server->num_acts += needed;
810 return &xkb->server->acts[xkb->server->key_acts[key]];
812 xkb->server->size_acts = xkb->server->num_acts + needed + 8;
813 newActs = _XkbTypedCalloc(xkb->server->size_acts, XkbAction);
818 for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) {
821 if ((xkb->server->key_acts[i] == 0) && (i != key))
824 nCopy = nKeyActs = XkbKeyNumActions(xkb, i);
832 memcpy(&newActs[nActs], XkbKeyActionsPtr(xkb, i),
837 xkb->server->key_acts[i] = nActs;
840 _XkbFree(xkb->server->acts);
841 xkb->server->acts = newActs;
842 xkb->server->num_acts = nActs;
843 return &xkb->server->acts[xkb->server->key_acts[key]];
847 XkbFreeClientMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
851 if ((xkb == NULL) || (xkb->map == NULL))
855 map = xkb->map;
893 _XkbFree(xkb->map);
894 xkb->map = NULL;
900 XkbFreeServerMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
904 if ((xkb == NULL) || (xkb->server == NULL))
908 map = xkb->server;
931 _XkbFree(xkb->server);
932 xkb->server = NULL;