Lines Matching refs:xkb
43 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))) {
55 xkb->min_key_code, xkb->max_key_code);
59 if (xkb->map == NULL) {
63 xkb->map = map;
66 map = xkb->map;
93 int nKeys = XkbNumKeys(xkb);
112 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
113 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
114 (xkb->max_key_code < xkb->min_key_code))
126 XkbAllocServerMap(XkbDescPtr xkb, unsigned which, unsigned nNewActions)
131 if (xkb == NULL)
133 if (xkb->server == NULL) {
140 xkb->server = map;
143 map = xkb->server;
145 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
146 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
147 (xkb->max_key_code < xkb->min_key_code))
156 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
157 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
158 (xkb->max_key_code < xkb->min_key_code))
191 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
192 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
193 (xkb->max_key_code < xkb->min_key_code))
202 if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
203 (!XkbIsLegalKeycode(xkb->max_key_code)) ||
204 (xkb->max_key_code < xkb->min_key_code))
268 XkbResizeKeyType(XkbDescPtr xkb,
275 if ((type_ndx < 0) || (type_ndx >= xkb->map->num_types) || (map_count < 0)
290 type = &xkb->map->types[type_ndx];
367 for (nTotal = 1, i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
368 width = XkbKeyGroupsWidth(xkb, i);
370 nTotal += XkbKeyNumSyms(xkb,i);
373 for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1;
375 if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) {
381 nTotal += XkbKeyNumSyms(xkb, i);
383 nTotal += XkbKeyNumGroups(xkb, i) * new_num_lvls;
390 xkb->map->size_syms = (nTotal * 15) / 10;
391 newSyms = calloc(xkb->map->size_syms, sizeof(KeySym));
396 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
401 width = XkbKeyGroupsWidth(xkb, i);
402 pOld = XkbKeySymsPtr(xkb, i);
403 for (g = XkbKeyNumGroups(xkb, i) - 1; g >= 0; g--) {
407 xkb->map->key_sym_map[i].offset = nSyms;
408 nSyms += XkbKeyNumGroups(xkb, i) * new_num_lvls;
411 memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i),
412 XkbKeyNumSyms(xkb, i) * sizeof(KeySym));
413 xkb->map->key_sym_map[i].offset = nSyms;
414 nSyms += XkbKeyNumSyms(xkb, i);
418 free(xkb->map->syms);
419 xkb->map->syms = newSyms;
420 xkb->map->num_syms = nSyms;
428 for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
429 width = XkbKeyGroupsWidth(xkb, i);
432 for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1;
434 if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) {
454 width = XkbKeyGroupsWidth(xkb, key);
456 pSyms = XkbKeySymsPtr(xkb, key);
457 for (g = XkbKeyNumGroups(xkb, key) - 1; g >= 0; g--) {
458 if (XkbKeyKeyTypeIndex(xkb, key, g) == type_ndx) {
471 XkbResizeKeySyms(XkbDescPtr xkb, int key, int needed)
478 xkb->map->key_sym_map[key].offset = 0;
479 return xkb->map->syms;
481 nOldSyms = XkbKeyNumSyms(xkb, key);
483 return XkbKeySymsPtr(xkb, key);
485 if (xkb->map->size_syms - xkb->map->num_syms >= (unsigned) needed) {
487 memcpy(&xkb->map->syms[xkb->map->num_syms], XkbKeySymsPtr(xkb, key),
491 memset(&xkb->map->
492 syms[xkb->map->num_syms + XkbKeyNumSyms(xkb, key)], 0,
495 xkb->map->key_sym_map[key].offset = xkb->map->num_syms;
496 xkb->map->num_syms += needed;
497 return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
499 xkb->map->size_syms += (needed > 32 ? needed : 32);
500 newSyms = calloc(xkb->map->size_syms, sizeof(KeySym));
505 for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) {
508 nCopy = nKeySyms = XkbKeyNumSyms(xkb, i);
514 memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i),
519 xkb->map->key_sym_map[i].offset = nSyms;
522 free(xkb->map->syms);
523 xkb->map->syms = newSyms;
524 xkb->map->num_syms = nSyms;
525 return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
553 XkbChangeKeycodeRange(XkbDescPtr xkb,
558 if ((!xkb) || (minKC < XkbMinLegalKeyCode) || (maxKC > XkbMaxLegalKeyCode))
562 if (minKC < xkb->min_key_code) {
565 tmp = xkb->min_key_code - minKC;
566 if (xkb->map) {
567 if (xkb->map->key_sym_map) {
568 memset((char *) &xkb->map->key_sym_map[minKC], 0,
579 if (xkb->map->modmap) {
580 memset((char *) &xkb->map->modmap[minKC], 0, tmp);
592 if (xkb->server) {
593 if (xkb->server->behaviors) {
594 memset((char *) &xkb->server->behaviors[minKC], 0,
606 if (xkb->server->key_acts) {
607 memset((char *) &xkb->server->key_acts[minKC], 0,
619 if (xkb->server->vmodmap) {
620 memset((char *) &xkb->server->vmodmap[minKC], 0,
633 if ((xkb->names) && (xkb->names->keys)) {
634 memset((char *) &xkb->names->keys[minKC], 0,
643 xkb->min_key_code = minKC;
645 if (maxKC > xkb->max_key_code) {
648 tmp = MAP_LENGTH - xkb->max_key_code;
649 if (xkb->map) {
650 if (xkb->map->key_sym_map) {
651 memset((char *) &xkb->map->key_sym_map[xkb->max_key_code], 0,
662 if (xkb->map->modmap) {
663 memset((char *) &xkb->map->modmap[xkb->max_key_code], 0, tmp);
675 if (xkb->server) {
676 if (xkb->server->behaviors) {
677 memset((char *) &xkb->server->behaviors[xkb->max_key_code], 0,
689 if (xkb->server->key_acts) {
690 memset((char *) &xkb->server->key_acts[xkb->max_key_code], 0,
702 if (xkb->server->vmodmap) {
703 memset((char *) &xkb->server->vmodmap[xkb->max_key_code], 0,
716 if ((xkb->names) && (xkb->names->keys)) {
717 memset((char *) &xkb->names->keys[xkb->max_key_code], 0,
726 xkb->max_key_code = maxKC;
732 XkbResizeKeyActions(XkbDescPtr xkb, int key, int needed)
738 xkb->server->key_acts[key] = 0;
741 if (XkbKeyHasActions(xkb, key) &&
742 (XkbKeyNumSyms(xkb, key) >= (unsigned) needed))
743 return XkbKeyActionsPtr(xkb, key);
744 if (xkb->server->size_acts - xkb->server->num_acts >= (unsigned) needed) {
745 xkb->server->key_acts[key] = xkb->server->num_acts;
746 xkb->server->num_acts += needed;
747 return &xkb->server->acts[xkb->server->key_acts[key]];
749 xkb->server->size_acts = xkb->server->num_acts + needed + 8;
750 newActs = calloc(xkb->server->size_acts, sizeof(XkbAction));
755 for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) {
758 if ((xkb->server->key_acts[i] == 0) && (i != key))
761 nCopy = nKeyActs = XkbKeyNumActions(xkb, i);
769 memcpy(&newActs[nActs], XkbKeyActionsPtr(xkb, i),
774 xkb->server->key_acts[i] = nActs;
777 free(xkb->server->acts);
778 xkb->server->acts = newActs;
779 xkb->server->num_acts = nActs;
780 return &xkb->server->acts[xkb->server->key_acts[key]];
784 XkbFreeClientMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
788 if ((xkb == NULL) || (xkb->map == NULL))
792 map = xkb->map;
828 free(xkb->map);
829 xkb->map = NULL;
835 XkbFreeServerMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
839 if ((xkb == NULL) || (xkb->server == NULL))
843 map = xkb->server;
867 free(xkb->server);
868 xkb->server = NULL;