Exemple #1
0
static Status
XkbInitNames(XkbSrvInfoPtr xkbi,SrvXkmInfo *file)
{
XkbDescPtr	xkb;
XkbNamesPtr	names;
Status		rtrn;
Atom		unknown;

    xkb= xkbi->desc;
    if ((rtrn=XkbAllocNames(xkb,XkbAllNamesMask,0,0))!=Success)
	return rtrn;
    unknown= CREATE_ATOM("unknown");
    names = xkb->names;
    if (names->keycodes==None)		names->keycodes= unknown;
    if (names->geometry==None)		names->geometry= unknown;
    if (names->phys_symbols==None)	names->phys_symbols= unknown;
    if (names->symbols==None)		names->symbols= unknown;
    if (names->types==None)		names->types= unknown;
    if (names->compat==None)		names->compat= unknown;
    if ((file->xkbinfo.defined&XkmVirtualModsMask)==0) {
	if (names->vmods[vmod_NumLock]==None)
	    names->vmods[vmod_NumLock]= CREATE_ATOM("NumLock");
	if (names->vmods[vmod_Alt]==None)
	    names->vmods[vmod_Alt]= CREATE_ATOM("Alt");
	if (names->vmods[vmod_AltGr]==None)
	    names->vmods[vmod_AltGr]= CREATE_ATOM("ModeSwitch");
    }

    if (((file->xkbinfo.defined&XkmIndicatorsMask)==0)||
	((file->xkbinfo.defined&XkmGeometryMask)==0)) {
	initIndicatorNames(NULL,xkb);
	if (names->indicators[LED_CAPS-1]==None)
	    names->indicators[LED_CAPS-1] = CREATE_ATOM("Caps Lock");
	if (names->indicators[LED_NUM-1]==None)
	    names->indicators[LED_NUM-1] = CREATE_ATOM("Num Lock");
	if (names->indicators[LED_SCROLL-1]==None)
	    names->indicators[LED_SCROLL-1] = CREATE_ATOM("Scroll Lock");
#ifdef LED_COMPOSE
	if (names->indicators[LED_COMPOSE-1]==None)
	    names->indicators[LED_COMPOSE-1] = CREATE_ATOM("Compose");
#endif
    }
#ifdef DEBUG_RADIO_GROUPS
    if (names->num_rg<1) {
	names->radio_groups= (Atom *)_XkbCalloc(RG_COUNT, sizeof(Atom));
	if (names->radio_groups) {
	    names->num_rg = RG_COUNT;
	    names->radio_groups[RG_BOGUS_FUNCTION_GROUP]= CREATE_ATOM("BOGUS");
	}
    }
#endif
    if (xkb->geom!=NULL)
	 names->geometry= xkb->geom->name;
    else names->geometry= unknown;
    return Success;
}
Exemple #2
0
static Status
XkbInitNames(XkbSrvInfoPtr xkbi)
{
XkbDescPtr	xkb;
XkbNamesPtr	names;
Status		rtrn;
Atom		unknown;

    xkb= xkbi->desc;
    if ((rtrn=XkbAllocNames(xkb,XkbAllNamesMask,0,0))!=Success)
	return rtrn;
    unknown= CREATE_ATOM("unknown");
    names = xkb->names;
    if (names->keycodes==None)		names->keycodes= unknown;
    if (names->geometry==None)		names->geometry= unknown;
    if (names->phys_symbols==None)	names->phys_symbols= unknown;
    if (names->symbols==None)		names->symbols= unknown;
    if (names->types==None)		names->types= unknown;
    if (names->compat==None)		names->compat= unknown;
    if (!(xkb->defined & XkmVirtualModsMask)) {
        if (names->vmods[vmod_NumLock]==None)
            names->vmods[vmod_NumLock]= CREATE_ATOM("NumLock");
        if (names->vmods[vmod_Alt]==None)
            names->vmods[vmod_Alt]= CREATE_ATOM("Alt");
        if (names->vmods[vmod_AltGr]==None)
            names->vmods[vmod_AltGr]= CREATE_ATOM("ModeSwitch");
    }

    if (!(xkb->defined & XkmIndicatorsMask) ||
        !(xkb->defined & XkmGeometryMask)) {
        initIndicatorNames(NULL,xkb);
        if (names->indicators[LED_CAPS-1]==None)
            names->indicators[LED_CAPS-1] = CREATE_ATOM("Caps Lock");
        if (names->indicators[LED_NUM-1]==None)
            names->indicators[LED_NUM-1] = CREATE_ATOM("Num Lock");
        if (names->indicators[LED_SCROLL-1]==None)
            names->indicators[LED_SCROLL-1] = CREATE_ATOM("Scroll Lock");
#ifdef LED_COMPOSE
        if (names->indicators[LED_COMPOSE-1]==None)
            names->indicators[LED_COMPOSE-1] = CREATE_ATOM("Compose");
#endif
    }

    if (xkb->geom!=NULL)
	 names->geometry= xkb->geom->name;
    else names->geometry= unknown;

    return Success;
}
Exemple #3
0
void
ClearVModInfo(VModInfo *info,XkbDescPtr xkb)
{
register int i;

    if (XkbAllocNames(xkb,XkbVirtualModNamesMask,0,0)!=Success)
	return;
    if (XkbAllocServerMap(xkb,XkbVirtualModsMask,0)!=Success)
	return;
    info->xkb= xkb;
    info->newlyDefined= info->defined= info->available= 0;
    if (xkb && xkb->names) {
	register int bit;
	for (i=0,bit=1;i<XkbNumVirtualMods;i++,bit<<=1) {
	    if (xkb->names->vmods[i]!=None)
		info->defined|= bit;
	}
    }
    return;
}
Exemple #4
0
static Bool
DefaultApplyNames(XkbConfigRtrnPtr rtrn, XkbDescPtr xkb)
{
    char *str;

    if (XkbAllocNames(xkb, XkbComponentNamesMask, 0, 0) != Success)
        return False;
    if ((str = rtrn->keycodes) != NULL) {
        xkb->names->keycodes = XkbInternAtom(xkb->dpy, str, False);
        _XkbFree(str);
        rtrn->keycodes = NULL;
    }
    if ((str = rtrn->geometry) != NULL) {
        xkb->names->geometry = XkbInternAtom(xkb->dpy, str, False);
        _XkbFree(str);
        rtrn->geometry = NULL;
    }
    if ((str = rtrn->symbols) != NULL) {
        xkb->names->symbols = XkbInternAtom(xkb->dpy, str, False);
        _XkbFree(str);
        rtrn->symbols = NULL;
    }
    if ((str = rtrn->phys_symbols) != NULL) {
        xkb->names->phys_symbols = XkbInternAtom(xkb->dpy, str, False);
        _XkbFree(str);
        rtrn->phys_symbols = NULL;
    }
    if ((str = rtrn->types) != NULL) {
        xkb->names->types = XkbInternAtom(xkb->dpy, str, False);
        _XkbFree(str);
        rtrn->types = NULL;
    }
    if ((str = rtrn->compat) != NULL) {
        xkb->names->compat = XkbInternAtom(xkb->dpy, str, False);
        _XkbFree(str);
        rtrn->compat = NULL;
    }
    return True;
}