Lines Matching refs:xkb

45 XkbAllocClientMap(XkbDescPtr xkb,unsigned which,unsigned nTotalTypes)
50 if ((xkb==NULL)||((nTotalTypes>0)&&(nTotalTypes<XkbNumRequiredTypes)))
53 ((!XkbIsLegalKeycode(xkb->min_key_code))||
54 (!XkbIsLegalKeycode(xkb->max_key_code))||
55 (xkb->max_key_code<xkb->min_key_code))) {
57 xkb->min_key_code,xkb->max_key_code);
61 if (xkb->map==NULL) {
65 xkb->map= map;
67 else map= xkb->map;
92 int nKeys= XkbNumKeys(xkb);
104 i= xkb->max_key_code+1;
111 if ((!XkbIsLegalKeycode(xkb->min_key_code))||
112 (!XkbIsLegalKeycode(xkb->max_key_code))||
113 (xkb->max_key_code<xkb->min_key_code))
116 i= xkb->max_key_code+1;
126 XkbAllocServerMap(XkbDescPtr xkb,unsigned which,unsigned nNewActions)
131 if (xkb==NULL)
133 if (xkb->server==NULL) {
140 xkb->server= map;
142 else map= xkb->server;
144 if ((!XkbIsLegalKeycode(xkb->min_key_code))||
145 (!XkbIsLegalKeycode(xkb->max_key_code))||
146 (xkb->max_key_code<xkb->min_key_code))
149 i= xkb->max_key_code+1;
156 if ((!XkbIsLegalKeycode(xkb->min_key_code))||
157 (!XkbIsLegalKeycode(xkb->max_key_code))||
158 (xkb->max_key_code<xkb->min_key_code))
184 i= xkb->max_key_code+1;
191 if ((!XkbIsLegalKeycode(xkb->min_key_code))||
192 (!XkbIsLegalKeycode(xkb->max_key_code))||
193 (xkb->max_key_code<xkb->min_key_code))
196 i= xkb->max_key_code+1;
203 if ((!XkbIsLegalKeycode(xkb->min_key_code))||
204 (!XkbIsLegalKeycode(xkb->max_key_code))||
205 (xkb->max_key_code<xkb->min_key_code))
208 i= xkb->max_key_code+1;
269 XkbResizeKeyType( XkbDescPtr xkb,
278 if ((type_ndx<0)||(type_ndx>=xkb->map->num_types)||(map_count<0)||
293 type= &xkb->map->types[type_ndx];
369 for (nTotal=1,i=xkb->min_key_code;i<=xkb->max_key_code;i++) {
370 width= XkbKeyGroupsWidth(xkb,i);
373 for (match=0,g=XkbKeyNumGroups(xkb,i)-1;(g>=0)&&(!match);g--) {
374 if (XkbKeyKeyTypeIndex(xkb,i,g)==type_ndx) {
380 nTotal+= XkbKeyNumSyms(xkb,i);
382 nTotal+= XkbKeyNumGroups(xkb,i)*new_num_lvls;
388 xkb->map->size_syms= (nTotal*15)/10;
389 newSyms = calloc(xkb->map->size_syms, sizeof(KeySym));
394 for (i=xkb->min_key_code;i<=xkb->max_key_code;i++) {
398 width= XkbKeyGroupsWidth(xkb,i);
399 pOld= XkbKeySymsPtr(xkb,i);
400 for (g=XkbKeyNumGroups(xkb,i)-1;g>=0;g--) {
404 xkb->map->key_sym_map[i].offset= nSyms;
405 nSyms+= XkbKeyNumGroups(xkb,i)*new_num_lvls;
408 memcpy(&newSyms[nSyms],XkbKeySymsPtr(xkb,i),
409 XkbKeyNumSyms(xkb,i)*sizeof(KeySym));
410 xkb->map->key_sym_map[i].offset= nSyms;
411 nSyms+= XkbKeyNumSyms(xkb,i);
415 free(xkb->map->syms);
416 xkb->map->syms= newSyms;
417 xkb->map->num_syms= nSyms;
424 for (i=xkb->min_key_code;i<=xkb->max_key_code;i++) {
425 width= XkbKeyGroupsWidth(xkb,i);
428 for (match=0,g=XkbKeyNumGroups(xkb,i)-1;(g>=0)&&(!match);g--) {
429 if (XkbKeyKeyTypeIndex(xkb,i,g)==type_ndx) {
447 width= XkbKeyGroupsWidth(xkb,key);
449 pSyms= XkbKeySymsPtr(xkb,key);
450 for (g=XkbKeyNumGroups(xkb,key)-1;g>=0;g--) {
451 if (XkbKeyKeyTypeIndex(xkb,key,g)==type_ndx) {
463 XkbResizeKeySyms(XkbDescPtr xkb,int key,int needed)
470 xkb->map->key_sym_map[key].offset= 0;
471 return xkb->map->syms;
473 nOldSyms= XkbKeyNumSyms(xkb,key);
475 return XkbKeySymsPtr(xkb,key);
477 if (xkb->map->size_syms-xkb->map->num_syms>=(unsigned)needed) {
479 memcpy(&xkb->map->syms[xkb->map->num_syms],XkbKeySymsPtr(xkb,key),
483 memset(&xkb->map->syms[xkb->map->num_syms+XkbKeyNumSyms(xkb, key)],
486 xkb->map->key_sym_map[key].offset = xkb->map->num_syms;
487 xkb->map->num_syms+= needed;
488 return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
490 xkb->map->size_syms+= (needed>32?needed:32);
491 newSyms = calloc(xkb->map->size_syms, sizeof(KeySym));
496 for (i=xkb->min_key_code;i<=(int)xkb->max_key_code;i++) {
499 nCopy= nKeySyms= XkbKeyNumSyms(xkb,i);
505 memcpy(&newSyms[nSyms],XkbKeySymsPtr(xkb,i),nCopy*sizeof(KeySym));
508 xkb->map->key_sym_map[i].offset = nSyms;
511 free(xkb->map->syms);
512 xkb->map->syms = newSyms;
513 xkb->map->num_syms = nSyms;
514 return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
543 XkbChangeKeycodeRange( XkbDescPtr xkb,
550 if ((!xkb)||(minKC<XkbMinLegalKeyCode)||(maxKC>XkbMaxLegalKeyCode))
554 if (minKC<xkb->min_key_code) {
557 tmp= xkb->min_key_code-minKC;
558 if (xkb->map) {
559 if (xkb->map->key_sym_map) {
560 memset((char *)&xkb->map->key_sym_map[minKC], 0,
569 if (xkb->map->modmap) {
570 memset((char *)&xkb->map->modmap[minKC], 0, tmp);
579 if (xkb->server) {
580 if (xkb->server->behaviors) {
581 memset((char *)&xkb->server->behaviors[minKC], 0,
590 if (xkb->server->key_acts) {
591 memset((char *)&xkb->server->key_acts[minKC], 0,
600 if (xkb->server->vmodmap) {
601 memset((char *)&xkb->server->vmodmap[minKC], 0,
611 if ((xkb->names)&&(xkb->names->keys)) {
612 memset((char *)&xkb->names->keys[minKC], 0, tmp*sizeof(XkbKeyNameRec));
620 xkb->min_key_code= minKC;
622 if (maxKC>xkb->max_key_code) {
625 tmp= maxKC-xkb->max_key_code;
626 if (xkb->map) {
627 if (xkb->map->key_sym_map) {
628 XkbSymMapRec *prev_key_sym_map = xkb->map->key_sym_map;
630 xkb->map->key_sym_map = realloc(xkb->map->key_sym_map,
632 if (!xkb->map->key_sym_map) {
636 memset((char *)&xkb->map->key_sym_map[xkb->max_key_code], 0,
645 if (xkb->map->modmap) {
646 unsigned char *prev_modmap = xkb->map->modmap;
648 xkb->map->modmap = realloc(xkb->map->modmap,
650 if (!xkb->map->modmap) {
654 memset((char *)&xkb->map->modmap[xkb->max_key_code], 0, tmp);
663 if (xkb->server) {
664 if (xkb->server->behaviors) {
665 XkbBehavior *prev_behaviors = xkb->server->behaviors;
667 xkb->server->behaviors = realloc(xkb->server->behaviors,
669 if (!xkb->server->behaviors) {
673 memset((char *)&xkb->server->behaviors[xkb->max_key_code], 0,
682 if (xkb->server->key_acts) {
683 unsigned short *prev_key_acts = xkb->server->key_acts;
685 xkb->server->key_acts= realloc(xkb->server->key_acts,
687 if (!xkb->server->key_acts) {
691 memset((char *)&xkb->server->key_acts[xkb->max_key_code], 0,
700 if (xkb->server->vmodmap) {
701 unsigned short *prev_vmodmap = xkb->server->vmodmap;
703 xkb->server->vmodmap= realloc(xkb->server->vmodmap,
705 if (!xkb->server->vmodmap) {
709 memset((char *)&xkb->server->vmodmap[xkb->max_key_code], 0,
719 if ((xkb->names)&&(xkb->names->keys)) {
720 XkbKeyNameRec *prev_keys = xkb->names->keys;
722 xkb->names->keys = realloc(xkb->names->keys,
724 if (!xkb->names->keys) {
728 memset((char *)&xkb->names->keys[xkb->max_key_code], 0,
737 xkb->max_key_code= maxKC;
743 XkbResizeKeyActions(XkbDescPtr xkb,int key,int needed)
749 xkb->server->key_acts[key]= 0;
752 if (XkbKeyHasActions(xkb,key)&&(XkbKeyNumSyms(xkb,key)>=(unsigned)needed))
753 return XkbKeyActionsPtr(xkb,key);
754 if (xkb->server->size_acts-xkb->server->num_acts>=(unsigned)needed) {
755 xkb->server->key_acts[key]= xkb->server->num_acts;
756 xkb->server->num_acts+= needed;
757 return &xkb->server->acts[xkb->server->key_acts[key]];
759 xkb->server->size_acts= xkb->server->num_acts+needed+8;
760 newActs = calloc(xkb->server->size_acts, sizeof(XkbAction));
765 for (i=xkb->min_key_code;i<=(int)xkb->max_key_code;i++) {
768 if ((xkb->server->key_acts[i]==0)&&(i!=key))
771 nCopy= nKeyActs= XkbKeyNumActions(xkb,i);
779 memcpy(&newActs[nActs],XkbKeyActionsPtr(xkb,i),
783 xkb->server->key_acts[i]= nActs;
786 free(xkb->server->acts);
787 xkb->server->acts = newActs;
788 xkb->server->num_acts= nActs;
789 return &xkb->server->acts[xkb->server->key_acts[key]];
793 XkbFreeClientMap(XkbDescPtr xkb,unsigned what,Bool freeMap)
797 if ((xkb==NULL)||(xkb->map==NULL))
801 map= xkb->map;
836 free(xkb->map);
837 xkb->map= NULL;
843 XkbFreeServerMap(XkbDescPtr xkb,unsigned what,Bool freeMap)
847 if ((xkb==NULL)||(xkb->server==NULL))
851 map= xkb->server;
875 free(xkb->server);
876 xkb->server= NULL;