Unverified Commit c86a119d authored by Mike Gabriel's avatar Mike Gabriel

Merge branch 'uli42-gh-sunweaver/pr/xserver-xkb-cleanup' into 3.6.x

parents b1e4d6e8 b82a6a10
...@@ -224,7 +224,6 @@ install-full: ...@@ -224,7 +224,6 @@ install-full:
$(INSTALL_DIR) $(DESTDIR)/$(ETCDIR_NX) $(INSTALL_DIR) $(DESTDIR)/$(ETCDIR_NX)
$(INSTALL_FILE) etc/keystrokes.cfg $(DESTDIR)/$(ETCDIR_NX)/ $(INSTALL_FILE) etc/keystrokes.cfg $(DESTDIR)/$(ETCDIR_NX)/
$(INSTALL_FILE) etc/nxagent.keyboard $(DESTDIR)$(ETCDIR_NX)/
$(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/nx $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/nx
$(INSTALL_FILE) VERSION $(DESTDIR)$(PREFIX)/share/nx/VERSION.nxagent $(INSTALL_FILE) VERSION $(DESTDIR)$(PREFIX)/share/nx/VERSION.nxagent
......
etc/nxagent/keystrokes.cfg etc/nxagent/keystrokes.cfg
etc/nxagent/nxagent.keyboard
usr/bin/nxagent usr/bin/nxagent
usr/lib/*/nx/X11/ usr/lib/*/nx/X11/
usr/share/man/man1/nxagent.1* usr/share/man/man1/nxagent.1*
......
...@@ -5,4 +5,7 @@ set -e ...@@ -5,4 +5,7 @@ set -e
dpkg-maintscript-helper rm_conffile \ dpkg-maintscript-helper rm_conffile \
/etc/nxagent/rgb "2:3.5.99.4-999" nxagent -- "$@" /etc/nxagent/rgb "2:3.5.99.4-999" nxagent -- "$@"
dpkg-maintscript-helper rm_conffile \
/etc/nxagent/nxagent.keyboard "2:3.5.99.4-999" nxagent -- "$@"
#DEBHELPER# #DEBHELPER#
...@@ -5,4 +5,7 @@ set -e ...@@ -5,4 +5,7 @@ set -e
dpkg-maintscript-helper rm_conffile \ dpkg-maintscript-helper rm_conffile \
/etc/nxagent/rgb "2:3.5.99.4-999" nxagent -- "$@" /etc/nxagent/rgb "2:3.5.99.4-999" nxagent -- "$@"
dpkg-maintscript-helper rm_conffile \
/etc/nxagent/nxagent.keyboard "2:3.5.99.4-999" nxagent -- "$@"
#DEBHELPER# #DEBHELPER#
...@@ -5,4 +5,7 @@ set -e ...@@ -5,4 +5,7 @@ set -e
dpkg-maintscript-helper rm_conffile \ dpkg-maintscript-helper rm_conffile \
/etc/nxagent/rgb "2:3.5.99.4-999" nxagent -- "$@" /etc/nxagent/rgb "2:3.5.99.4-999" nxagent -- "$@"
dpkg-maintscript-helper rm_conffile \
/etc/nxagent/nxagent.keyboard "2:3.5.99.4-999" nxagent -- "$@"
#DEBHELPER# #DEBHELPER#
...@@ -884,11 +884,6 @@ XkbError: ...@@ -884,11 +884,6 @@ XkbError:
#ifdef XKB #ifdef XKB
} else { /* if (noXkbExtension) */ } else { /* if (noXkbExtension) */
FILE *file;
XkbConfigRtrnRec config;
char *nxagentXkbConfigFilePath;
XkbComponentNamesRec names = {0}; XkbComponentNamesRec names = {0};
char *rules, *variants, *options; char *rules, *variants, *options;
...@@ -971,17 +966,6 @@ XkbError: ...@@ -971,17 +966,6 @@ XkbError:
options = XKB_DFLT_KB_OPTIONS; options = XKB_DFLT_KB_OPTIONS;
#ifdef TEST #ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: XkbInitialMap (option -xkbmap) is [%s]\n", XkbInitialMap ? XkbInitialMap : "NULL");
#endif
if (XkbInitialMap) {
if ((names.keymap = strchr(XkbInitialMap, '/')) != NULL)
++names.keymap;
else
names.keymap = XkbInitialMap;
}
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: Init XKB extension.\n"); fprintf(stderr, "nxagentKeyboardProc: Init XKB extension.\n");
#endif #endif
...@@ -1035,108 +1019,23 @@ XkbError: ...@@ -1035,108 +1019,23 @@ XkbError:
XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb); XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb);
if (nxagentX2go)
nxagentXkbConfigFilePath = strdup(XKB_CONFIG_FILE_X2GO);
else
nxagentXkbConfigFilePath = strdup(XKB_CONFIG_FILE_NX);
if (!nxagentXkbConfigFilePath)
{
FatalError("nxagentKeyboardProc: malloc failed.");
}
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: nxagentXkbConfigFilePath [%s].\n",
nxagentXkbConfigFilePath);
#endif
if ((file = fopen(nxagentXkbConfigFilePath, "r"))) {
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: Going to parse config file.\n");
#endif
if (XkbCFParse(file, XkbCFDflts, xkb, &config) == 0) {
ErrorF("Error parsing config file.\n");
free(nxagentXkbConfigFilePath);
nxagentXkbConfigFilePath = NULL;
fclose(file);
goto XkbError;
}
if (config.rules_file)
rules = config.rules_file;
if (config.model)
{
if (free_model)
{
free_model = 0;
free(model);
}
model = config.model;
}
if (config.layout)
{
if (free_layout)
{
free_layout = 0;
free(layout);
}
layout = config.layout;
}
if (config.variant)
variants = config.variant;
if (config.options)
options = config.options;
free(nxagentXkbConfigFilePath);
nxagentXkbConfigFilePath = NULL;
fclose(file);
}
else
{
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: No config file, going to set rules and init device.\n");
#endif
#ifdef DEBUG
fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device: "
"[rules='%s',model='%s',layout='%s',variants='%s',options='%s'].\n",
rules, model, layout, variants, options);
#endif
XkbSetRulesDflts(rules, model, layout, variants, options);
XkbInitKeyboardDeviceStruct((void *)pDev, &names, &keySyms, modmap,
nxagentBell, nxagentChangeKeyboardControl);
free(nxagentXkbConfigFilePath);
nxagentXkbConfigFilePath = NULL;
if (!nxagentKeyboard || strcmp(nxagentKeyboard, "query") == 0)
{
goto XkbError;
}
goto XkbEnd;
}
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device.\n");
#endif
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device: " fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device: "
"[rules='%s',model='%s',layout='%s',variants='%s',options='%s'].\n", "[rules='%s',model='%s',layout='%s',variants='%s',options='%s'].\n",
rules, model, layout, variants, options); rules, model, layout, variants, options);
#endif #endif
XkbSetRulesDflts(rules, model, layout, variants, options); XkbSetRulesDflts(rules, model, layout, variants, options);
XkbInitKeyboardDeviceStruct((void *)pDev, &names, &keySyms, modmap, XkbInitKeyboardDeviceStruct((void *)pDev, &names, &keySyms, modmap,
nxagentBell, nxagentChangeKeyboardControl); nxagentBell, nxagentChangeKeyboardControl);
XkbDDXChangeControls((void *)pDev, xkb->ctrls, xkb->ctrls);
XkbEnd: if (!nxagentKeyboard ||
(nxagentKeyboard && (strcmp(nxagentKeyboard, "query") == 0)))
{
goto XkbError;
}
XkbEnd:
if (nxagentOption(Shadow) == 1 && pDev && pDev->key) if (nxagentOption(Shadow) == 1 && pDev && pDev->key)
{ {
NXShadowInitKeymap(&(pDev->key->curKeySyms)); NXShadowInitKeymap(&(pDev->key->curKeySyms));
......
...@@ -30,15 +30,11 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,15 +30,11 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define XkbAllocClientMap SrvXkbAllocClientMap #define XkbAllocClientMap SrvXkbAllocClientMap
#define XkbAllocServerMap SrvXkbAllocServerMap #define XkbAllocServerMap SrvXkbAllocServerMap
#define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey #define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
#define XkbAddKeyType SrvXkbAddKeyType
#define XkbCopyKeyType SrvXkbCopyKeyType
#define XkbCopyKeyTypes SrvXkbCopyKeyTypes #define XkbCopyKeyTypes SrvXkbCopyKeyTypes
#define XkbFreeClientMap SrvXkbFreeClientMap #define XkbFreeClientMap SrvXkbFreeClientMap
#define XkbFreeServerMap SrvXkbFreeServerMap #define XkbFreeServerMap SrvXkbFreeServerMap
#define XkbInitCanonicalKeyTypes SrvXkbInitCanonicalKeyTypes
#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols #define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey #define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
#define XkbUpdateMapFromCore SrvXkbUpdateMapFromCore
#define XkbResizeKeyActions SrvXkbResizeKeyActions #define XkbResizeKeyActions SrvXkbResizeKeyActions
#define XkbResizeKeySyms SrvXkbResizeKeySyms #define XkbResizeKeySyms SrvXkbResizeKeySyms
#define XkbResizeKeyType SrvXkbResizeKeyType #define XkbResizeKeyType SrvXkbResizeKeyType
...@@ -48,21 +44,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -48,21 +44,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define XkbAllocKeyboard SrvXkbAllocKeyboard #define XkbAllocKeyboard SrvXkbAllocKeyboard
#define XkbAllocNames SrvXkbAllocNames #define XkbAllocNames SrvXkbAllocNames
#define XkbFreeCompatMap SrvXkbFreeCompatMap #define XkbFreeCompatMap SrvXkbFreeCompatMap
#define XkbFreeControls SrvXkbFreeControls
#define XkbFreeIndicatorMaps SrvXkbFreeIndicatorMaps
#define XkbFreeKeyboard SrvXkbFreeKeyboard #define XkbFreeKeyboard SrvXkbFreeKeyboard
#define XkbFreeNames SrvXkbFreeNames #define XkbFreeNames SrvXkbFreeNames
#define XkbAddDeviceLedInfo SrvXkbAddDeviceLedInfo
#define XkbAllocDeviceInfo SrvXkbAllocDeviceInfo
#define XkbFreeDeviceInfo SrvXkbFreeDeviceInfo
#define XkbResizeDeviceButtonActions SrvXkbResizeDeviceButtonActions
#define XkbLatchModifiers SrvXkbLatchModifiers #define XkbLatchModifiers SrvXkbLatchModifiers
#define XkbLatchGroup SrvXkbLatchGroup #define XkbLatchGroup SrvXkbLatchGroup
#define XkbVirtualModsToReal SrvXkbVirtualModsToReal #define XkbVirtualModsToReal SrvXkbVirtualModsToReal
#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange #define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges #define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
#define XkbUpdateActionVirtualMods SrvXkbUpdateActionVirtualMods
#define XkbUpdateKeyTypeVirtualMods SrvXkbUpdateKeyTypeVirtualMods
#include <nx-X11/extensions/XKBproto.h> #include <nx-X11/extensions/XKBproto.h>
#include "xkbstr.h" #include "xkbstr.h"
...@@ -276,23 +264,17 @@ typedef struct ...@@ -276,23 +264,17 @@ typedef struct
extern int XkbReqCode; extern int XkbReqCode;
extern int XkbEventBase; extern int XkbEventBase;
extern int XkbKeyboardErrorCode;
extern int XkbDisableLockActions; extern int XkbDisableLockActions;
extern char * XkbBaseDirectory; extern char * XkbBaseDirectory;
extern char * XkbBinDirectory; extern char * XkbBinDirectory;
extern char * XkbInitialMap; extern char * XkbInitialMap;
extern int _XkbClientMajor;
extern int _XkbClientMinor;
extern unsigned int XkbXIUnsupported; extern unsigned int XkbXIUnsupported;
extern char * XkbModelUsed,*XkbLayoutUsed,*XkbVariantUsed,*XkbOptionsUsed;
extern Bool noXkbExtension; extern Bool noXkbExtension;
extern Bool XkbWantRulesProp;
extern void * XkbLastRepeatEvent; extern void * XkbLastRepeatEvent;
extern CARD32 xkbDebugFlags; extern CARD32 xkbDebugFlags;
extern CARD32 xkbDebugCtrls;
#define _XkbAlloc(s) malloc((s)) #define _XkbAlloc(s) malloc((s))
...@@ -450,11 +432,6 @@ extern Status XkbAllocControls( ...@@ -450,11 +432,6 @@ extern Status XkbAllocControls(
unsigned int /* which*/ unsigned int /* which*/
); );
extern Status XkbCopyKeyType(
XkbKeyTypePtr /* from */,
XkbKeyTypePtr /* into */
);
extern Status XkbCopyKeyTypes( extern Status XkbCopyKeyTypes(
XkbKeyTypePtr /* from */, XkbKeyTypePtr /* from */,
XkbKeyTypePtr /* into */, XkbKeyTypePtr /* into */,
...@@ -622,15 +599,6 @@ extern void XkbApplyLedStateChanges( ...@@ -622,15 +599,6 @@ extern void XkbApplyLedStateChanges(
XkbEventCausePtr /* cause */ XkbEventCausePtr /* cause */
); );
extern void XkbUpdateLedAutoState(
DeviceIntPtr /* dev */,
XkbSrvLedInfoPtr /* sli */,
unsigned int /* maps_to_check */,
xkbExtensionDeviceNotify * /* ed */,
XkbChangesPtr /* changes */,
XkbEventCausePtr /* cause */
);
extern void XkbFlushLedEvents( extern void XkbFlushLedEvents(
DeviceIntPtr /* dev */, DeviceIntPtr /* dev */,
DeviceIntPtr /* kbd */, DeviceIntPtr /* kbd */,
...@@ -640,11 +608,6 @@ extern void XkbFlushLedEvents( ...@@ -640,11 +608,6 @@ extern void XkbFlushLedEvents(
XkbEventCausePtr /* cause */ XkbEventCausePtr /* cause */
); );
extern void XkbUpdateAllDeviceIndicators(
XkbChangesPtr /* changes */,
XkbEventCausePtr /* cause */
);
extern unsigned int XkbIndicatorsToUpdate( extern unsigned int XkbIndicatorsToUpdate(
DeviceIntPtr /* dev */, DeviceIntPtr /* dev */,
unsigned long /* state_changes */, unsigned long /* state_changes */,
...@@ -701,12 +664,6 @@ extern void XkbSendCompatMapNotify( ...@@ -701,12 +664,6 @@ extern void XkbSendCompatMapNotify(
xkbCompatMapNotify * /* ev */ xkbCompatMapNotify * /* ev */
); );
extern void XkbSendIndicatorNotify(
DeviceIntPtr /* kbd */,
int /* xkbType */,
xkbIndicatorNotify * /* ev */
);
extern void XkbHandleBell( extern void XkbHandleBell(
BOOL /* force */, BOOL /* force */,
BOOL /* eventOnly */, BOOL /* eventOnly */,
...@@ -879,11 +836,6 @@ extern void XkbDDXChangeControls( ...@@ -879,11 +836,6 @@ extern void XkbDDXChangeControls(
XkbControlsPtr /* new */ XkbControlsPtr /* new */
); );
extern void XkbDDXUpdateIndicators(
DeviceIntPtr /* keybd */,
CARD32 /* newState */
);
extern void XkbDDXUpdateDeviceIndicators( extern void XkbDDXUpdateDeviceIndicators(
DeviceIntPtr /* dev */, DeviceIntPtr /* dev */,
XkbSrvLedInfoPtr /* sli */, XkbSrvLedInfoPtr /* sli */,
...@@ -1057,35 +1009,12 @@ extern Bool XkbUpdateMapFromCore( ...@@ -1057,35 +1009,12 @@ extern Bool XkbUpdateMapFromCore(
XkbChangesPtr /* changes */ XkbChangesPtr /* changes */
); );
extern void XkbFreeControls(
XkbDescPtr /* xkb */,
unsigned int /* which */,
Bool /* freeMap */
);
extern void XkbFreeIndicatorMaps(
XkbDescPtr /* xkb */
);
extern Bool XkbApplyVirtualModChanges( extern Bool XkbApplyVirtualModChanges(
XkbDescPtr /* xkb */, XkbDescPtr /* xkb */,
unsigned int /* changed */, unsigned int /* changed */,
XkbChangesPtr /* changes */ XkbChangesPtr /* changes */
); );
extern Bool XkbUpdateActionVirtualMods(
XkbDescPtr /* xkb */,
XkbAction * /* act */,
unsigned int /* changed */
);
extern void XkbUpdateKeyTypeVirtualMods(
XkbDescPtr /* xkb */,
XkbKeyTypePtr /* type */,
unsigned int /* changed */,
XkbChangesPtr /* changes */
);
extern void XkbSendNewKeyboardNotify( extern void XkbSendNewKeyboardNotify(
DeviceIntPtr /* kbd */, DeviceIntPtr /* kbd */,
xkbNewKeyboardNotify * /* pNKN */ xkbNewKeyboardNotify * /* pNKN */
...@@ -1116,16 +1045,6 @@ typedef struct _XkbSrvListInfo { ...@@ -1116,16 +1045,6 @@ typedef struct _XkbSrvListInfo {
int nFound[_XkbListNumComponents]; int nFound[_XkbListNumComponents];
} XkbSrvListInfoRec,*XkbSrvListInfoPtr; } XkbSrvListInfoRec,*XkbSrvListInfoPtr;
char *
XkbGetRulesDflts(
XkbRF_VarDefsPtr /* defs */
);
extern void XkbSetRulesUsed(
XkbRF_VarDefsPtr /* defs */
);
extern Status XkbDDXList( extern Status XkbDDXList(
DeviceIntPtr /* dev */, DeviceIntPtr /* dev */,
XkbSrvListInfoPtr /* listing */, XkbSrvListInfoPtr /* listing */,
...@@ -1149,11 +1068,6 @@ extern Bool XkbDDXNamesFromRules( ...@@ -1149,11 +1068,6 @@ extern Bool XkbDDXNamesFromRules(
XkbComponentNamesPtr /* names */ XkbComponentNamesPtr /* names */
); );
extern FILE *XkbDDXOpenConfigFile(
char * /* mapName */,
char * /* fileNameRtrn */,
int /* fileNameRtrnLen */
);
extern Bool XkbDDXApplyConfig( extern Bool XkbDDXApplyConfig(
XPointer /* cfg_in */, XPointer /* cfg_in */,
......
...@@ -20,10 +20,10 @@ XKB_DDXDEFS = XkbServerDefines ...@@ -20,10 +20,10 @@ XKB_DDXDEFS = XkbServerDefines
DDX_SRCS = ddxBeep.c ddxCtrls.c ddxFakeBtn.c ddxFakeMtn.c ddxInit.c \ DDX_SRCS = ddxBeep.c ddxCtrls.c ddxFakeBtn.c ddxFakeMtn.c ddxInit.c \
ddxKeyClick.c ddxKillSrv.c ddxLEDs.c ddxVT.c ddxLoad.c \ ddxKeyClick.c ddxKillSrv.c ddxLEDs.c ddxVT.c ddxLoad.c \
ddxList.c ddxDevBtn.c ddxPrivate.c xkbconfig.c ddxList.c ddxDevBtn.c ddxPrivate.c
DDX_OBJS = ddxBeep.o ddxCtrls.o ddxFakeBtn.o ddxFakeMtn.o ddxInit.o \ DDX_OBJS = ddxBeep.o ddxCtrls.o ddxFakeBtn.o ddxFakeMtn.o ddxInit.o \
ddxKeyClick.o ddxKillSrv.o ddxLEDs.o ddxVT.o ddxLoad.o \ ddxKeyClick.o ddxKillSrv.o ddxLEDs.o ddxVT.o ddxLoad.o \
ddxList.o ddxDevBtn.o ddxPrivate.o xkbconfig.o ddxList.o ddxDevBtn.o ddxPrivate.o
SRCS = xkb.c xkbUtils.c xkbEvents.c xkbAccessX.c xkbSwap.c \ SRCS = xkb.c xkbUtils.c xkbEvents.c xkbAccessX.c xkbSwap.c \
xkbLEDs.c xkbInit.c xkbActions.c xkbPrKeyEv.c \ xkbLEDs.c xkbInit.c xkbActions.c xkbPrKeyEv.c \
xkmread.c xkbfmisc.c xkberrs.c maprules.c \ xkmread.c xkbfmisc.c xkberrs.c maprules.c \
......
...@@ -257,7 +257,7 @@ XkbAllocControls(XkbDescPtr xkb,unsigned which) ...@@ -257,7 +257,7 @@ XkbAllocControls(XkbDescPtr xkb,unsigned which)
} }
/*ARGSUSED*/ /*ARGSUSED*/
void static void
XkbFreeControls(XkbDescPtr xkb,unsigned which,Bool freeMap) XkbFreeControls(XkbDescPtr xkb,unsigned which,Bool freeMap)
{ {
if (freeMap && (xkb!=NULL) && (xkb->ctrls!=NULL)) { if (freeMap && (xkb!=NULL) && (xkb->ctrls!=NULL)) {
...@@ -282,7 +282,7 @@ XkbAllocIndicatorMaps(XkbDescPtr xkb) ...@@ -282,7 +282,7 @@ XkbAllocIndicatorMaps(XkbDescPtr xkb)
return Success; return Success;
} }
void static void
XkbFreeIndicatorMaps(XkbDescPtr xkb) XkbFreeIndicatorMaps(XkbDescPtr xkb)
{ {
if ((xkb!=NULL)&&(xkb->indicators!=NULL)) { if ((xkb!=NULL)&&(xkb->indicators!=NULL)) {
...@@ -330,154 +330,3 @@ XkbFreeKeyboard(XkbDescPtr xkb,unsigned which,Bool freeAll) ...@@ -330,154 +330,3 @@ XkbFreeKeyboard(XkbDescPtr xkb,unsigned which,Bool freeAll)
_XkbFree(xkb); _XkbFree(xkb);
return; return;
} }
/***====================================================================***/
XkbDeviceLedInfoPtr
XkbAddDeviceLedInfo(XkbDeviceInfoPtr devi,unsigned ledClass,unsigned ledId)
{
XkbDeviceLedInfoPtr devli;
register int i;
if ((!devi)||(!XkbSingleXIClass(ledClass))||(!XkbSingleXIId(ledId)))
return NULL;
for (i=0,devli=devi->leds;i<devi->num_leds;i++,devli++) {
if ((devli->led_class==ledClass)&&(devli->led_id==ledId))
return devli;
}
if (devi->num_leds>=devi->sz_leds) {
XkbDeviceLedInfoRec *prev_leds = devi->leds;
if (devi->sz_leds>0) devi->sz_leds*= 2;
else devi->sz_leds= 1;
devi->leds= _XkbTypedRealloc(devi->leds,devi->sz_leds,
XkbDeviceLedInfoRec);
if (!devi->leds) {
_XkbFree(prev_leds);
devi->sz_leds= devi->num_leds= 0;
return NULL;
}
i= devi->num_leds;
for (devli=&devi->leds[i];i<devi->sz_leds;i++,devli++) {
bzero(devli,sizeof(XkbDeviceLedInfoRec));
devli->led_class= XkbXINone;
devli->led_id= XkbXINone;
}
}
devli= &devi->leds[devi->num_leds++];
bzero(devli,sizeof(XkbDeviceLedInfoRec));
devli->led_class= ledClass;
devli->led_id= ledId;
return devli;
}
Status
XkbResizeDeviceButtonActions(XkbDeviceInfoPtr devi,unsigned newTotal)
{
XkbAction *prev_btn_acts;
if ((!devi)||(newTotal>255))
return BadValue;
if ((devi->btn_acts!=NULL)&&(newTotal==devi->num_btns))
return Success;
if (newTotal==0) {
if (devi->btn_acts!=NULL) {
_XkbFree(devi->btn_acts);
devi->btn_acts= NULL;
}
devi->num_btns= 0;
return Success;
}
prev_btn_acts = devi->btn_acts;
devi->btn_acts= _XkbTypedRealloc(devi->btn_acts,newTotal,XkbAction);
if (devi->btn_acts==NULL) {
_XkbFree(prev_btn_acts);
devi->num_btns= 0;
return BadAlloc;
}
if (newTotal>devi->num_btns) {
XkbAction *act;
act= &devi->btn_acts[devi->num_btns];
bzero((char *)act,(newTotal-devi->num_btns)*sizeof(XkbAction));
}
devi->num_btns= newTotal;
return Success;
}
/*ARGSUSED*/
XkbDeviceInfoPtr
XkbAllocDeviceInfo(unsigned deviceSpec,unsigned nButtons,unsigned szLeds)
{
XkbDeviceInfoPtr devi;
devi= _XkbTypedCalloc(1,XkbDeviceInfoRec);
if (devi!=NULL) {
devi->device_spec= deviceSpec;
devi->has_own_state= False;
devi->num_btns= 0;
devi->btn_acts= NULL;
if (nButtons>0) {
devi->num_btns= nButtons;
devi->btn_acts= _XkbTypedCalloc(nButtons,XkbAction);
if (!devi->btn_acts) {
_XkbFree(devi);
return NULL;
}
}
devi->dflt_kbd_fb= XkbXINone;
devi->dflt_led_fb= XkbXINone;
devi->num_leds= 0;
devi->sz_leds= 0;
devi->leds= NULL;
if (szLeds>0) {
devi->sz_leds= szLeds;
devi->leds= _XkbTypedCalloc(szLeds,XkbDeviceLedInfoRec);
if (!devi->leds) {
if (devi->btn_acts)
_XkbFree(devi->btn_acts);
_XkbFree(devi);
return NULL;
}
}
}
return devi;
}
void
XkbFreeDeviceInfo(XkbDeviceInfoPtr devi,unsigned which,Bool freeDevI)
{
if (devi) {
if (freeDevI) {
which= XkbXI_AllDeviceFeaturesMask;
if (devi->name) {
_XkbFree(devi->name);
devi->name= NULL;
}
}
if ((which&XkbXI_ButtonActionsMask)&&(devi->btn_acts)) {
_XkbFree(devi->btn_acts);
devi->num_btns= 0;
devi->btn_acts= NULL;
}
if ((which&XkbXI_IndicatorsMask)&&(devi->leds)) {
register int i;
if ((which&XkbXI_IndicatorsMask)==XkbXI_IndicatorsMask) {
_XkbFree(devi->leds);
devi->sz_leds= devi->num_leds= 0;
devi->leds= NULL;
}
else {
XkbDeviceLedInfoPtr devli;
for (i=0,devli=devi->leds;i<devi->num_leds;i++,devli++) {
if (which&XkbXI_IndicatorMapsMask)
bzero((char *)&devli->maps[0],sizeof(devli->maps));
else bzero((char *)&devli->names[0],sizeof(devli->names));
}
}
}
if (freeDevI)
_XkbFree(devi);
}
return;
}
...@@ -217,7 +217,7 @@ XkbServerMapPtr map; ...@@ -217,7 +217,7 @@ XkbServerMapPtr map;
/***====================================================================***/ /***====================================================================***/
Status static Status
XkbCopyKeyType(XkbKeyTypePtr from,XkbKeyTypePtr into) XkbCopyKeyType(XkbKeyTypePtr from,XkbKeyTypePtr into)
{ {
if ((!from)||(!into)) if ((!from)||(!into))
...@@ -272,81 +272,6 @@ register int i,rtrn; ...@@ -272,81 +272,6 @@ register int i,rtrn;
return Success; return Success;
} }
XkbKeyTypePtr
XkbAddKeyType( XkbDescPtr xkb,
Atom name,
int map_count,
Bool want_preserve,
int num_lvls)
{
register int i;
unsigned tmp;
XkbKeyTypePtr type;
XkbClientMapPtr map;
if ((!xkb)||(num_lvls<1))
return NULL;
map= xkb->map;
if ((map)&&(map->types)) {
for (i=0;i<map->num_types;i++) {
if (map->types[i].name==name) {
Status status;
status=XkbResizeKeyType(xkb,i,map_count,want_preserve,num_lvls);
return (status==Success?&map->types[i]:NULL);
}
}
}
if ((!map)||(!map->types)||(!(map->num_types<XkbNumRequiredTypes))) {
tmp= XkbNumRequiredTypes+1;
if (XkbAllocClientMap(xkb,XkbKeyTypesMask,tmp)!=Success)
return NULL;
tmp= 0;
if (map->num_types<=XkbKeypadIndex)
tmp|= XkbKeypadMask;
if (map->num_types<=XkbAlphabeticIndex)
tmp|= XkbAlphabeticMask;
if (map->num_types<=XkbTwoLevelIndex)
tmp|= XkbTwoLevelMask;
if (map->num_types<=XkbOneLevelIndex)
tmp|= XkbOneLevelMask;
if (XkbInitCanonicalKeyTypes(xkb,tmp,XkbNoModifier)==Success) {
for (i=0;i<map->num_types;i++) {
Status status;
if (map->types[i].name!=name)
continue;
status=XkbResizeKeyType(xkb,i,map_count,want_preserve,num_lvls);
return (status==Success?&map->types[i]:NULL);
}
}
}
if ((map->num_types<=map->size_types)&&
(XkbAllocClientMap(xkb,XkbKeyTypesMask,map->num_types+1)!=Success)) {
return NULL;
}
type= &map->types[map->num_types];
map->num_types++;
bzero((char *)type,sizeof(XkbKeyTypeRec));
type->num_levels= num_lvls;
type->map_count= map_count;
type->name= name;
if (map_count>0) {
type->map= _XkbTypedCalloc(map_count,XkbKTMapEntryRec);
if (!type->map) {
map->num_types--;
return NULL;
}
if (want_preserve) {
type->preserve= _XkbTypedCalloc(map_count,XkbModsRec);
if (!type->preserve) {
_XkbFree(type->map);
map->num_types--;
return NULL;
}
}
}
return type;
}
Status Status
XkbResizeKeyType( XkbDescPtr xkb, XkbResizeKeyType( XkbDescPtr xkb,
int type_ndx, int type_ndx,
......
...@@ -40,101 +40,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -40,101 +40,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/ /***====================================================================***/
#define mapSize(m) (sizeof(m)/sizeof(XkbKTMapEntryRec))
static XkbKTMapEntryRec map2Level[]= {
{ True, ShiftMask, {1, ShiftMask, 0} }
};
static XkbKTMapEntryRec mapAlpha[]= {
{ True, ShiftMask, { 1, ShiftMask, 0 } },
{ True, LockMask, { 0, LockMask, 0 } }
};
static XkbModsRec preAlpha[]= {
{ 0, 0, 0 },
{ LockMask, LockMask, 0 }
};
#define NL_VMOD_MASK 0
static XkbKTMapEntryRec mapKeypad[]= {
{ True, ShiftMask, { 1, ShiftMask, 0 } },
{ False, 0, { 1, 0, NL_VMOD_MASK } }
};
static XkbKeyTypeRec canonicalTypes[XkbNumRequiredTypes] = {
{ { 0, 0, 0 },
1, /* num_levels */
0, /* map_count */
NULL, NULL,
None, NULL
},
{ { ShiftMask, ShiftMask, 0 },
2, /* num_levels */
mapSize(map2Level), /* map_count */
map2Level, NULL,
None, NULL
},
{ { ShiftMask|LockMask, ShiftMask|LockMask, 0 },
2, /* num_levels */
mapSize(mapAlpha), /* map_count */
mapAlpha, preAlpha,
None, NULL
},
{ { ShiftMask, ShiftMask, NL_VMOD_MASK },
2, /* num_levels */
mapSize(mapKeypad), /* map_count */
mapKeypad, NULL,
None, NULL
}
};
Status
XkbInitCanonicalKeyTypes(XkbDescPtr xkb,unsigned which,int keypadVMod)
{
XkbClientMapPtr map;
XkbKeyTypePtr from,to;
Status rtrn;
if (!xkb)
return BadMatch;
rtrn= XkbAllocClientMap(xkb,XkbKeyTypesMask,XkbNumRequiredTypes);
if (rtrn!=Success)
return rtrn;
map= xkb->map;
if ((which&XkbAllRequiredTypes)==0)
return Success;
rtrn= Success;
from= canonicalTypes;
to= map->types;
if (which&XkbOneLevelMask)
rtrn= XkbCopyKeyType(&from[XkbOneLevelIndex],&to[XkbOneLevelIndex]);
if ((which&XkbTwoLevelMask)&&(rtrn==Success))
rtrn= XkbCopyKeyType(&from[XkbTwoLevelIndex],&to[XkbTwoLevelIndex]);
if ((which&XkbAlphabeticMask)&&(rtrn==Success))
rtrn= XkbCopyKeyType(&from[XkbAlphabeticIndex],&to[XkbAlphabeticIndex]);
if ((which&XkbKeypadMask)&&(rtrn==Success)) {
XkbKeyTypePtr type;
rtrn= XkbCopyKeyType(&from[XkbKeypadIndex],&to[XkbKeypadIndex]);
type= &to[XkbKeypadIndex];
if ((keypadVMod>=0)&&(keypadVMod<XkbNumVirtualMods)&&(rtrn==Success)) {
type->mods.vmods= (1<<keypadVMod);
type->map[0].active= True;
type->map[0].mods.mask= ShiftMask;
type->map[0].mods.real_mods= ShiftMask;
type->map[0].mods.vmods= 0;
type->map[0].level= 1;
type->map[1].active= False;
type->map[1].mods.mask= 0;
type->map[1].mods.real_mods= 0;
type->map[1].mods.vmods= (1<<keypadVMod);
type->map[1].level= 1;
}
}
return Success;
}
/***====================================================================***/
#define CORE_SYM(i) (i<map_width?core_syms[i]:NoSymbol) #define CORE_SYM(i) (i<map_width?core_syms[i]:NoSymbol)
#define XKB_OFFSET(g,l) (((g)*groupsWidth)+(l)) #define XKB_OFFSET(g,l) (((g)*groupsWidth)+(l))
...@@ -552,88 +457,6 @@ unsigned changed,tmp; ...@@ -552,88 +457,6 @@ unsigned changed,tmp;
return True; return True;
} }
Bool
XkbUpdateMapFromCore( XkbDescPtr xkb,
KeyCode first_key,
int num_keys,
int map_width,
KeySym * core_keysyms,
XkbChangesPtr changes)
{
register int key,last_key;
KeySym * syms;
syms= &core_keysyms[(first_key-xkb->min_key_code)*map_width];
if (changes) {
if (changes->map.changed&XkbKeySymsMask) {
_XkbAddKeyChange(&changes->map.first_key_sym,
&changes->map.num_key_syms,first_key);
if (num_keys>1) {
_XkbAddKeyChange(&changes->map.first_key_sym,
&changes->map.num_key_syms,
first_key+num_keys-1);
}
}
else {
changes->map.changed|= XkbKeySymsMask;
changes->map.first_key_sym= first_key;
changes->map.num_key_syms= num_keys;
}
}
last_key= first_key+num_keys-1;
for (key=first_key;key<=last_key;key++,syms+= map_width) {
XkbMapChangesPtr mc;
unsigned explicit;
KeySym tsyms[XkbMaxSymsPerKey];
int types[XkbNumKbdGroups];
int nG;
explicit= xkb->server->explicit[key]&XkbExplicitKeyTypesMask;
types[XkbGroup1Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup1Index);
types[XkbGroup2Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup2Index);
types[XkbGroup3Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup3Index);
types[XkbGroup4Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup4Index);
nG= XkbKeyTypesForCoreSymbols(xkb,map_width,syms,explicit,types,tsyms);
if (changes)
mc= &changes->map;
else mc= NULL;
XkbChangeTypesOfKey(xkb,key,nG,XkbAllGroupsMask,types,mc);
memcpy((char *)XkbKeySymsPtr(xkb,key),(char *)tsyms,
XkbKeyNumSyms(xkb,key)*sizeof(KeySym));
XkbApplyCompatMapToKey(xkb,key,changes);
}
if ((xkb->server->vmods!=NULL)&&(xkb->map->modmap!=NULL)&&(changes)&&
(changes->map.changed&(XkbVirtualModMapMask|XkbModifierMapMask))) {
unsigned char newVMods[XkbNumVirtualMods];
register unsigned bit,i;
unsigned present;
bzero(newVMods,XkbNumVirtualMods);
present= 0;
for (key=xkb->min_key_code;key<=xkb->max_key_code;key++) {
if (xkb->server->vmodmap[key]==0)
continue;
for (i=0,bit=1;i<XkbNumVirtualMods;i++,bit<<=1) {
if (bit&xkb->server->vmodmap[key]) {
present|= bit;
newVMods[i]|= xkb->map->modmap[key];
}
}
}
for (i=0,bit=1;i<XkbNumVirtualMods;i++,bit<<=1) {
if ((bit&present)&&(newVMods[i]!=xkb->server->vmods[i])) {
changes->map.changed|= XkbVirtualModsMask;
changes->map.vmods|= bit;
xkb->server->vmods[i]= newVMods[i];
}
}
}
if (changes && (changes->map.changed&XkbVirtualModsMask))
XkbApplyVirtualModChanges(xkb,changes->map.vmods,changes);
return True;
}
Status Status
XkbChangeTypesOfKey( XkbDescPtr xkb, XkbChangeTypesOfKey( XkbDescPtr xkb,
int key, int key,
...@@ -782,7 +605,7 @@ register unsigned mask; ...@@ -782,7 +605,7 @@ register unsigned mask;
/***====================================================================***/ /***====================================================================***/
Bool static Bool
XkbUpdateActionVirtualMods(XkbDescPtr xkb,XkbAction *act,unsigned changed) XkbUpdateActionVirtualMods(XkbDescPtr xkb,XkbAction *act,unsigned changed)
{ {
unsigned int tmp; unsigned int tmp;
...@@ -808,7 +631,7 @@ unsigned int tmp; ...@@ -808,7 +631,7 @@ unsigned int tmp;
return False; return False;
} }
void static void
XkbUpdateKeyTypeVirtualMods( XkbDescPtr xkb, XkbUpdateKeyTypeVirtualMods( XkbDescPtr xkb,
XkbKeyTypePtr type, XkbKeyTypePtr type,
unsigned int changed, unsigned int changed,
......
...@@ -38,7 +38,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -38,7 +38,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <xkbsrv.h> #include <xkbsrv.h>
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
void static void
XkbDDXUpdateIndicators(DeviceIntPtr dev,CARD32 new) XkbDDXUpdateIndicators(DeviceIntPtr dev,CARD32 new)
{ {
dev->kbdfeed->ctrl.leds= new; dev->kbdfeed->ctrl.leds= new;
......
...@@ -520,7 +520,7 @@ OutputDirectory( ...@@ -520,7 +520,7 @@ OutputDirectory(
} }
} }
Bool static Bool
XkbDDXCompileNamedKeymap( XkbDescPtr xkb, XkbDDXCompileNamedKeymap( XkbDescPtr xkb,
XkbComponentNamesPtr names, XkbComponentNamesPtr names,
char * nameRtrn, char * nameRtrn,
...@@ -610,7 +610,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile; ...@@ -610,7 +610,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
return False; return False;
} }
Bool static Bool
XkbDDXCompileKeymapByNames( XkbDescPtr xkb, XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
XkbComponentNamesPtr names, XkbComponentNamesPtr names,
unsigned want, unsigned want,
...@@ -762,7 +762,7 @@ char tmpname[PATH_MAX]; ...@@ -762,7 +762,7 @@ char tmpname[PATH_MAX];
return False; return False;
} }
FILE * static FILE *
XkbDDXOpenConfigFile(char *mapName,char *fileNameRtrn,int fileNameRtrnLen) XkbDDXOpenConfigFile(char *mapName,char *fileNameRtrn,int fileNameRtrnLen)
{ {
char buf[PATH_MAX],xkm_output_dir[PATH_MAX]; char buf[PATH_MAX],xkm_output_dir[PATH_MAX];
......
...@@ -41,14 +41,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -41,14 +41,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
int XkbEventBase; int XkbEventBase;
int XkbErrorBase; static int XkbErrorBase;
int XkbReqCode; int XkbReqCode;
int XkbKeyboardErrorCode; static int XkbKeyboardErrorCode;
Atom xkbONE_LEVEL;
Atom xkbTWO_LEVEL;
Atom xkbKEYPAD;
CARD32 xkbDebugFlags = 0; CARD32 xkbDebugFlags = 0;
CARD32 xkbDebugCtrls = 0; static CARD32 xkbDebugCtrls = 0;
#ifndef XKB_SRV_UNSUPPORTED_XI_FEATURES #ifndef XKB_SRV_UNSUPPORTED_XI_FEATURES
#define XKB_SRV_UNSUPPORTED_XI_FEATURES XkbXI_KeyboardsMask #define XKB_SRV_UNSUPPORTED_XI_FEATURES XkbXI_KeyboardsMask
...@@ -56,7 +54,7 @@ CARD32 xkbDebugCtrls = 0; ...@@ -56,7 +54,7 @@ CARD32 xkbDebugCtrls = 0;
unsigned XkbXIUnsupported= XKB_SRV_UNSUPPORTED_XI_FEATURES; unsigned XkbXIUnsupported= XKB_SRV_UNSUPPORTED_XI_FEATURES;
RESTYPE RT_XKBCLIENT; static RESTYPE RT_XKBCLIENT;
/***====================================================================***/ /***====================================================================***/
...@@ -837,51 +835,6 @@ ProcXkbSetControls(ClientPtr client) ...@@ -837,51 +835,6 @@ ProcXkbSetControls(ClientPtr client)
return client->noClientException; return client->noClientException;
} }
int
XkbSetRepeatRate(DeviceIntPtr dev,int timeout,int interval,int major,int minor)
{
int changed= 0;
XkbControlsRec old,*xkb;
if ((!dev)||(!dev->key)||(!dev->key->xkbInfo))
return 0;
xkb= dev->key->xkbInfo->desc->ctrls;
old= *xkb;
if ((timeout!=0) && (xkb->repeat_delay!=timeout)) {
xkb->repeat_delay= timeout;
changed++;
}
if ((interval!=0) && (xkb->repeat_interval!=interval)) {
xkb->repeat_interval= interval;
changed++;
}
if (changed) {
xkbControlsNotify cn;
XkbDDXChangeControls(dev,&old,xkb);
if (XkbComputeControlsNotify(dev,&old,xkb,&cn,False)) {
cn.keycode= 0;
cn.eventType = 0;
cn.requestMajor = major;
cn.requestMinor = minor;
XkbSendControlsNotify(dev,&cn);
}
}
return 1;
}
int
XkbGetRepeatRate(DeviceIntPtr dev,int *timeout,int *interval)
{
XkbControlsPtr xkb;
if ((!dev)||(!dev->key)||(!dev->key->xkbInfo))
return 0;
xkb= dev->key->xkbInfo->desc->ctrls;
if (timeout) *timeout= xkb->repeat_delay;
if (interval) *interval= xkb->repeat_interval;
return 1;
}
/***====================================================================***/ /***====================================================================***/
static int static int
...@@ -2748,7 +2701,7 @@ ProcXkbGetIndicatorState(ClientPtr client) ...@@ -2748,7 +2701,7 @@ ProcXkbGetIndicatorState(ClientPtr client)
/***====================================================================***/ /***====================================================================***/
Status static Status
XkbComputeGetIndicatorMapReplySize( XkbComputeGetIndicatorMapReplySize(
XkbIndicatorPtr indicators, XkbIndicatorPtr indicators,
xkbGetIndicatorMapReply *rep) xkbGetIndicatorMapReply *rep)
...@@ -2765,7 +2718,7 @@ int nIndicators; ...@@ -2765,7 +2718,7 @@ int nIndicators;
return Success; return Success;
} }
int static int
XkbSendIndicatorMap( ClientPtr client, XkbSendIndicatorMap( ClientPtr client,
XkbIndicatorPtr indicators, XkbIndicatorPtr indicators,
xkbGetIndicatorMapReply * rep) xkbGetIndicatorMapReply * rep)
......
...@@ -25,46 +25,7 @@ extern int ProcXkbGetDeviceInfo(ClientPtr client); ...@@ -25,46 +25,7 @@ extern int ProcXkbGetDeviceInfo(ClientPtr client);
extern int ProcXkbSetDeviceInfo(ClientPtr client); extern int ProcXkbSetDeviceInfo(ClientPtr client);
extern int ProcXkbSetDebuggingFlags(ClientPtr client); extern int ProcXkbSetDebuggingFlags(ClientPtr client);
extern int XkbSetRepeatRate(DeviceIntPtr dev, int timeout, int interval, int major, int minor);
extern int XkbGetRepeatRate(DeviceIntPtr dev, int *timeout, int *interval);
extern void XkbExtensionInit(void); extern void XkbExtensionInit(void);
extern Status XkbComputeGetIndicatorMapReplySize(
XkbIndicatorPtr indicators,
xkbGetIndicatorMapReply *rep);
extern int XkbSendIndicatorMap(
ClientPtr client,
XkbIndicatorPtr indicators,
xkbGetIndicatorMapReply *rep);
extern void XkbComputeCompatState(XkbSrvInfoPtr xkbi);
extern void XkbSetPhysicalLockingKey(DeviceIntPtr dev, unsigned key);
extern Bool XkbFilterEvents(ClientPtr pClient, int nEvents, xEvent *xE); extern Bool XkbFilterEvents(ClientPtr pClient, int nEvents, xEvent *xE);
extern Bool XkbApplyLEDChangeToKeyboard(
XkbSrvInfoPtr xkbi,
XkbIndicatorMapPtr map,
Bool on,
XkbChangesPtr change);
extern Bool XkbWriteRulesProp(ClientPtr client, void * closure);
extern XkbAction XkbGetButtonAction(DeviceIntPtr kbd, DeviceIntPtr dev, int button);
/* extern Status XkbMergeFile(XkbDescPtr xkb, XkbFileInfo finfo); */
extern Bool XkbDDXCompileNamedKeymap(
XkbDescPtr xkb,
XkbComponentNamesPtr names,
char * nameRtrn,
int nameRtrnLen);
extern Bool XkbDDXCompileKeymapByNames(
XkbDescPtr xkb,
XkbComponentNamesPtr names,
unsigned want,
unsigned need,
char * nameRtrn,
int nameRtrnLen);
...@@ -48,9 +48,9 @@ void * XkbLastRepeatEvent= NULL; ...@@ -48,9 +48,9 @@ void * XkbLastRepeatEvent= NULL;
unsigned short XkbDfltAccessXTimeout= 120; unsigned short XkbDfltAccessXTimeout= 120;
unsigned int XkbDfltAccessXTimeoutMask= DFLT_TIMEOUT_CTRLS; unsigned int XkbDfltAccessXTimeoutMask= DFLT_TIMEOUT_CTRLS;
unsigned int XkbDfltAccessXTimeoutValues= 0; static unsigned int XkbDfltAccessXTimeoutValues= 0;
unsigned int XkbDfltAccessXTimeoutOptionsMask= DFLT_TIMEOUT_OPTS; static unsigned int XkbDfltAccessXTimeoutOptionsMask= DFLT_TIMEOUT_OPTS;
unsigned int XkbDfltAccessXTimeoutOptionsValues= 0; static unsigned int XkbDfltAccessXTimeoutOptionsValues= 0;
unsigned int XkbDfltAccessXFeedback= XkbAccessXFeedbackMask; unsigned int XkbDfltAccessXFeedback= XkbAccessXFeedbackMask;
unsigned short XkbDfltAccessXOptions= XkbAX_AllOptionsMask & ~(XkbAX_IndicatorFBMask|XkbAX_SKReleaseFBMask|XkbAX_SKRejectFBMask); unsigned short XkbDfltAccessXOptions= XkbAX_AllOptionsMask & ~(XkbAX_IndicatorFBMask|XkbAX_SKReleaseFBMask|XkbAX_SKRejectFBMask);
......
...@@ -40,9 +40,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -40,9 +40,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <ctype.h> #include <ctype.h>
static unsigned int _xkbServerGeneration; static unsigned int _xkbServerGeneration;
int xkbDevicePrivateIndex = -1; static int xkbDevicePrivateIndex = -1;
void static void
xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc, xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc,
void * data) void * data)
{ {
...@@ -215,7 +215,7 @@ static XkbAction fake; ...@@ -215,7 +215,7 @@ static XkbAction fake;
return fake; return fake;
} }
XkbAction static XkbAction
XkbGetButtonAction(DeviceIntPtr kbd,DeviceIntPtr dev,int button) XkbGetButtonAction(DeviceIntPtr kbd,DeviceIntPtr dev,int button)
{ {
XkbAction fake; XkbAction fake;
......
...@@ -467,43 +467,6 @@ static XkbCompatMapRec compatMap= { ...@@ -467,43 +467,6 @@ static XkbCompatMapRec compatMap= {
num_dfltSI, num_dfltSI num_dfltSI, num_dfltSI
}; };
static XkbIndicatorRec indicators= {
0x0,
{
{ 0x80, 0, 0x00, XkbIM_UseEffective, { LockMask, LockMask, 0 }, 0 },
{ 0x80, 0, 0x00, XkbIM_UseEffective, { 0, 0, vmod_NumLockMask }, 0 },
{ 0x80, 0, 0x00, XkbIM_UseLocked, { ShiftMask, ShiftMask, 0 }, 0 },
{ 0x80, 0, 0x00, 0, { 0, 0, 0 }, XkbMouseKeysMask },
{ 0x80, 0, 0x00, XkbIM_UseLocked, { 0, 0, vmod_ScrollLockMask }, 0 },
{ 0x80, XkbIM_UseEffective, 0xfe, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 },
{ 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }
}
};
static void static void
initIndicatorNames(DPYTYPE dpy,XkbDescPtr xkb) initIndicatorNames(DPYTYPE dpy,XkbDescPtr xkb)
{ {
......
...@@ -321,7 +321,7 @@ Time time = 0; ...@@ -321,7 +321,7 @@ Time time = 0;
return; return;
} }
void static void
XkbSendIndicatorNotify(DeviceIntPtr kbd,int xkbType,xkbIndicatorNotify *pEv) XkbSendIndicatorNotify(DeviceIntPtr kbd,int xkbType,xkbIndicatorNotify *pEv)
{ {
int initialized; int initialized;
...@@ -961,48 +961,6 @@ XkbInterestPtr interest; ...@@ -961,48 +961,6 @@ XkbInterestPtr interest;
} }
int int
XkbRemoveClient(DevicePtr inDev,ClientPtr client)
{
XkbSrvInfoPtr xkbi;
DeviceIntPtr dev = (DeviceIntPtr)inDev;
XkbInterestPtr interest;
unsigned long autoCtrls,autoValues;
Bool found;
found= False;
autoCtrls= autoValues= 0;
if ( dev->xkb_interest ) {
interest = dev->xkb_interest;
if (interest && (interest->client==client)){
dev->xkb_interest = interest->next;
autoCtrls= interest->autoCtrls;
autoValues= interest->autoCtrlValues;
_XkbFree(interest);
found= True;
}
while ((!found)&&(interest->next)) {
if (interest->next->client==client) {
XkbInterestPtr victim = interest->next;
interest->next = victim->next;
autoCtrls= victim->autoCtrls;
autoValues= victim->autoCtrlValues;
_XkbFree(victim);
found= True;
}
interest = interest->next;
}
}
if (found && autoCtrls && dev->key && dev->key->xkbInfo ) {
XkbEventCauseRec cause;
xkbi= dev->key->xkbInfo;
XkbSetCauseXkbReq(&cause,X_kbPerClientFlags,client);
XkbEnableDisableControls(xkbi,autoCtrls,autoValues,NULL,&cause);
}
return found;
}
int
XkbRemoveResourceClient(DevicePtr inDev,XID id) XkbRemoveResourceClient(DevicePtr inDev,XID id)
{ {
XkbSrvInfoPtr xkbi; XkbSrvInfoPtr xkbi;
......
...@@ -115,8 +115,7 @@ typedef struct _SrvXkmInfo { ...@@ -115,8 +115,7 @@ typedef struct _SrvXkmInfo {
char * XkbBaseDirectory= XKB_BASE_DIRECTORY; char * XkbBaseDirectory= XKB_BASE_DIRECTORY;
char * XkbBinDirectory= XKB_BIN_DIRECTORY; char * XkbBinDirectory= XKB_BIN_DIRECTORY;
char * XkbInitialMap= NULL; static int XkbWantAccessX= 0;
int XkbWantAccessX= 0;
static XkbFileInfo * _XkbInitFileInfo= NULL; static XkbFileInfo * _XkbInitFileInfo= NULL;
static Bool rulesDefined= False; static Bool rulesDefined= False;
...@@ -126,20 +125,17 @@ static char * XkbLayoutDflt= NULL; ...@@ -126,20 +125,17 @@ static char * XkbLayoutDflt= NULL;
static char * XkbVariantDflt= NULL; static char * XkbVariantDflt= NULL;
static char * XkbOptionsDflt= NULL; static char * XkbOptionsDflt= NULL;
char * XkbModelUsed= NULL; static char * XkbModelUsed= NULL;
char * XkbLayoutUsed= NULL; static char * XkbLayoutUsed= NULL;
char * XkbVariantUsed= NULL; static char * XkbVariantUsed= NULL;
char * XkbOptionsUsed= NULL; static char * XkbOptionsUsed= NULL;
int _XkbClientMajor= XkbMajorVersion; Bool noXkbExtension= XKB_DFLT_DISABLED;
int _XkbClientMinor= XkbMinorVersion; static Bool XkbWantRulesProp= XKB_DFLT_RULES_PROP;
Bool noXkbExtension= XKB_DFLT_DISABLED;
Bool XkbWantRulesProp= XKB_DFLT_RULES_PROP;
/***====================================================================***/ /***====================================================================***/
char * static char *
XkbGetRulesDflts(XkbRF_VarDefsPtr defs) XkbGetRulesDflts(XkbRF_VarDefsPtr defs)
{ {
if (XkbModelDflt) defs->model= XkbModelDflt; if (XkbModelDflt) defs->model= XkbModelDflt;
...@@ -153,7 +149,7 @@ XkbGetRulesDflts(XkbRF_VarDefsPtr defs) ...@@ -153,7 +149,7 @@ XkbGetRulesDflts(XkbRF_VarDefsPtr defs)
return (rulesDefined?XkbRulesFile:XKB_DFLT_RULES_FILE); return (rulesDefined?XkbRulesFile:XKB_DFLT_RULES_FILE);
} }
Bool static Bool
XkbWriteRulesProp(ClientPtr client, void * closure) XkbWriteRulesProp(ClientPtr client, void * closure)
{ {
int len,out; int len,out;
...@@ -222,7 +218,7 @@ char * pval; ...@@ -222,7 +218,7 @@ char * pval;
return True; return True;
} }
void static void
XkbSetRulesUsed(XkbRF_VarDefsPtr defs) XkbSetRulesUsed(XkbRF_VarDefsPtr defs)
{ {
if (XkbModelUsed) if (XkbModelUsed)
...@@ -301,9 +297,6 @@ XkbSetRulesDflts(char *rulesFile,char *model,char *layout, ...@@ -301,9 +297,6 @@ XkbSetRulesDflts(char *rulesFile,char *model,char *layout,
#include "xkbDflts.h" #include "xkbDflts.h"
/* A dummy to keep the compiler quiet */
void * xkbBogus = &indicators;
static Bool static Bool
XkbInitKeyTypes(XkbDescPtr xkb,SrvXkmInfo *file) XkbInitKeyTypes(XkbDescPtr xkb,SrvXkmInfo *file)
{ {
...@@ -503,35 +496,6 @@ XkbEventCauseRec cause; ...@@ -503,35 +496,6 @@ XkbEventCauseRec cause;
file.file=NULL; file.file=NULL;
bzero(&file.xkbinfo,sizeof(XkbFileInfo)); bzero(&file.xkbinfo,sizeof(XkbFileInfo));
bzero(&changes,sizeof(XkbChangesRec)); bzero(&changes,sizeof(XkbChangesRec));
if (XkbInitialMap!=NULL) {
if ((file.file=XkbDDXOpenConfigFile(XkbInitialMap,NULL,0))!=NULL) {
XkmReadFile(file.file,0,XkmKeymapLegal,&file.xkbinfo);
if (file.xkbinfo.xkb==NULL) {
LogMessage(X_ERROR,
"Error loading keymap file %s (%s in %s)\n"
"\treverting to defaults\n",
XkbInitialMap, _XkbErrMessages[_XkbErrCode],
(_XkbErrLocation?_XkbErrLocation:"unknown"));
fclose(file.file);
file.file= NULL;
bzero(&file.xkbinfo,sizeof(XkbFileInfo));
}
else {
if (_XkbInitFileInfo!=NULL) {
XkbDescPtr tmp;
if ((tmp=_XkbInitFileInfo->xkb)!=NULL) {
XkbFreeKeyboard(tmp,XkbAllComponentsMask,True);
_XkbInitFileInfo->xkb= NULL;
}
}
_XkbInitFileInfo= &file.xkbinfo;
}
}
else {
LogMessage(X_ERROR, "Error opening keymap file %s, reverting to defaults\n",
XkbInitialMap);
}
}
pXDev->key->xkbInfo= xkbi= _XkbTypedCalloc(1,XkbSrvInfoRec); pXDev->key->xkbInfo= xkbi= _XkbTypedCalloc(1,XkbSrvInfoRec);
if ( xkbi ) { if ( xkbi ) {
XkbDescPtr xkb; XkbDescPtr xkb;
...@@ -914,20 +878,6 @@ XkbProcessArguments(int argc,char *argv[],int i) ...@@ -914,20 +878,6 @@ XkbProcessArguments(int argc,char *argv[],int i)
return -1; return -1;
} }
} }
else if (strncmp(argv[i], "-xkbmap", 7) == 0) {
if(++i < argc) {
if (strlen(argv[i]) < PATH_MAX) {
XkbInitialMap= argv[i];
return 2;
} else {
LogMessage(X_ERROR, "-xkbmap pathname too long\n");
return -1;
}
}
else {
return -1;
}
}
else if ((strncmp(argv[i],"-accessx",8)==0)|| else if ((strncmp(argv[i],"-accessx",8)==0)||
(strncmp(argv[i],"+accessx",8)==0)) { (strncmp(argv[i],"+accessx",8)==0)) {
int j=1; int j=1;
...@@ -990,5 +940,4 @@ XkbUseMsg(void) ...@@ -990,5 +940,4 @@ XkbUseMsg(void)
ErrorF(" enable/disable accessx key sequences\n"); ErrorF(" enable/disable accessx key sequences\n");
ErrorF("-ardelay set XKB autorepeat delay\n"); ErrorF("-ardelay set XKB autorepeat delay\n");
ErrorF("-arinterval set XKB autorepeat interval\n"); ErrorF("-arinterval set XKB autorepeat interval\n");
ErrorF("-xkbmap XKB keyboard description to load on startup\n");
} }
...@@ -175,44 +175,6 @@ register unsigned mask; ...@@ -175,44 +175,6 @@ register unsigned mask;
return mask; return mask;
} }
Bool
XkbApplyVModChanges( XkbSrvInfoPtr xkbi,
unsigned changed,
XkbChangesPtr changes,
unsigned * needChecksRtrn,
XkbEventCausePtr cause)
{
XkbDescPtr xkb;
Bool check;
xkb= xkbi->desc;
#ifdef DEBUG
{
register unsigned i,bit;
for (i=0,bit=1;i<XkbNumVirtualMods;i++,bit<<=1) {
if ((changed&bit)==0)
continue;
if (xkbDebugFlags)
ErrorF("Should be applying: change vmod %d to 0x%x\n",i,
xkb->server->vmods[i]);
}
}
#endif
check= XkbApplyVirtualModChanges(xkb,changed,changes);
XkbApplyVModChangesToAllDevices(xkbi->device,xkb,changed,cause);
if (needChecksRtrn!=NULL) {
if (check)
*needChecksRtrn= XkbStateNotifyMask|XkbIndicatorStateNotifyMask;
else *needChecksRtrn= 0;
}
else if (check) {
/* 7/12/95 (ef) -- XXX check compatibility and/or indicator state */
}
return 1;
}
/***====================================================================***/ /***====================================================================***/
void void
...@@ -781,21 +743,6 @@ XkbCheckSecondaryEffects( XkbSrvInfoPtr xkbi, ...@@ -781,21 +743,6 @@ XkbCheckSecondaryEffects( XkbSrvInfoPtr xkbi,
/***====================================================================***/ /***====================================================================***/
void
XkbSetPhysicalLockingKey(DeviceIntPtr dev,unsigned key)
{
XkbDescPtr xkb;
xkb= dev->key->xkbInfo->desc;
if ((key>=xkb->min_key_code) && (key<=xkb->max_key_code)) {
xkb->server->behaviors[key].type= XkbKB_Lock|XkbKB_Permanent;
}
else ErrorF("Internal Error! Bad XKB info in SetPhysicalLockingKey\n");
return;
}
/***====================================================================***/
Bool Bool
XkbEnableDisableControls( XkbSrvInfoPtr xkbi, XkbEnableDisableControls( XkbSrvInfoPtr xkbi,
unsigned long change, unsigned long change,
...@@ -859,26 +806,6 @@ XkbDescPtr xkb= xkbi->desc; ...@@ -859,26 +806,6 @@ XkbDescPtr xkb= xkbi->desc;
} }
if ((xkb->geom!=NULL)&&(xkb->geom->name==name)) if ((xkb->geom!=NULL)&&(xkb->geom->name==name))
return xkb->geom; return xkb->geom;
else if ((name==xkb->names->geometry)&&(xkb->geom==NULL)) {
FILE *file= XkbDDXOpenConfigFile(XkbInitialMap,NULL,0);
if (file!=NULL) {
XkbFileInfo xkbFInfo;
xkmFileInfo finfo;
xkmSectionInfo toc[MAX_TOC],*entry;
bzero(&xkbFInfo,sizeof(xkbFInfo));
xkbFInfo.xkb= xkb;
if (XkmReadTOC(file,&finfo,MAX_TOC,toc)) {
entry= XkmFindTOCEntry(&finfo,toc,XkmGeometryIndex);
if (entry!=NULL)
XkmReadFileSection(file,entry,&xkbFInfo,NULL);
}
fclose(file);
if (xkb->geom) {
*shouldFree= 0;
return xkb->geom;
}
}
}
*shouldFree= 1; *shouldFree= 1;
return NULL; return NULL;
} }
......
...@@ -32,37 +32,6 @@ ...@@ -32,37 +32,6 @@
#include <ctype.h> #include <ctype.h>
#include <stdlib.h> #include <stdlib.h>
char * _XkbErrMessages[] = {
"success", /* _XkbSuccess */
"key names not defined", /* _XkbErrMissingNames */
"key types not defined", /* _XkbErrMissingTypes */
"required key types not present", /* _XkbErrMissingReqTypes */
"symbols not defined", /* _XkbErrMissingSymbols */
"virtual modifier bindings not defined",/* _XkbErrMissingVMods */
"indicators not defined", /* _XkbErrMissingIndicators */
"compatibility map not defined", /* _XkbErrMissingCompatMap */
"symbol interpretations not defined", /* _XkbErrMissingSymInterps */
"geometry not defined", /* _XkbErrMissingGeometry */
"illegal doodad type", /* _XkbErrIllegalDoodad */
"illegal TOC type", /* _XkbErrIllegalTOCType */
"illegal contents", /* _XkbErrIllegalContents */
"empty file", /* _XkbErrEmptyFile */
"file not found", /* _XkbErrFileNotFound */
"cannot open", /* _XkbErrFileCannotOpen */
"bad value", /* _XkbErrBadValue */
"bad match", /* _XkbErrBadMatch */
"illegal name for type", /* _XkbErrBadTypeName */
"illegal width for type", /* _XkbErrBadTypeWidth */
"bad file type", /* _XkbErrBadFileType */
"bad file version", /* _XkbErrBadFileVersion */
"error in Xkm file", /* _XkbErrBadFileFormat */
"allocation failed", /* _XkbErrBadAlloc */
"bad length", /* _XkbErrBadLength */
"X request failed", /* _XkbErrXReqFailure */
"not implemented" /* _XkbErrBadImplementation */
};
unsigned _XkbErrCode; unsigned _XkbErrCode;
char * _XkbErrLocation= NULL; char * _XkbErrLocation= NULL;
unsigned _XkbErrData; unsigned _XkbErrData;
...@@ -1167,18 +1167,6 @@ unsigned i,size_toc; ...@@ -1167,18 +1167,6 @@ unsigned i,size_toc;
return 1; return 1;
} }
xkmSectionInfo *
XkmFindTOCEntry(xkmFileInfo *finfo,xkmSectionInfo *toc,unsigned type)
{
register int i;
for (i=0;i<finfo->num_toc;i++) {
if (toc[i].type==type)
return &toc[i];
}
return NULL;
}
Bool Bool
XkmReadFileSection( FILE * file, XkmReadFileSection( FILE * file,
xkmSectionInfo * toc, xkmSectionInfo * toc,
......
...@@ -592,7 +592,6 @@ rm %{buildroot}%{_libdir}/*.la ...@@ -592,7 +592,6 @@ rm %{buildroot}%{_libdir}/*.la
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_sysconfdir}/nxagent %dir %{_sysconfdir}/nxagent
%config(noreplace) %{_sysconfdir}/nxagent/keystrokes.cfg %config(noreplace) %{_sysconfdir}/nxagent/keystrokes.cfg
%config(noreplace) %{_sysconfdir}/nxagent/nxagent.keyboard
%doc doc/nxagent/README.keystrokes %doc doc/nxagent/README.keystrokes
%{_bindir}/nxagent %{_bindir}/nxagent
# FIXME: compatibility symlink to BINDIR/nxagent, remove for 3.6.0 # FIXME: compatibility symlink to BINDIR/nxagent, remove for 3.6.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment