diff options
Diffstat (limited to 'xorg-server/xkb')
-rw-r--r-- | xorg-server/xkb/makefile | 46 | ||||
-rw-r--r-- | xorg-server/xkb/xkb.c | 2 | ||||
-rw-r--r-- | xorg-server/xkb/xkbActions.c | 6 | ||||
-rw-r--r-- | xorg-server/xkb/xkbInit.c | 8 |
4 files changed, 55 insertions, 7 deletions
diff --git a/xorg-server/xkb/makefile b/xorg-server/xkb/makefile new file mode 100644 index 000000000..31b3a857b --- /dev/null +++ b/xorg-server/xkb/makefile @@ -0,0 +1,46 @@ +DEFINES += HAVE_XKB_CONFIG_H + +DDX_SRCS = \ + ddxBeep.c \ + ddxCtrls.c \ + ddxFakeMtn.c \ + ddxInit.c \ + ddxKeyClick.c \ + ddxLEDs.c \ + ddxLoad.c \ + ddxList.c \ + ddxDevBtn.c + +DIX_SRCS = \ + xkb.c \ + xkbUtils.c \ + xkbEvents.c \ + xkbAccessX.c \ + xkbSwap.c \ + xkbLEDs.c \ + xkbInit.c \ + xkbActions.c \ + xkbPrKeyEv.c + +# this should be replaced by a common library or something, ideally -d +XKBFILE_SRCS = \ + maprules.c \ + xkmread.c \ + xkbtext.c \ + xkbfmisc.c \ + xkbout.c + +X11_SRCS = \ + XKBMisc.c \ + XKBAlloc.c \ + XKBGAlloc.c \ + XKBMAlloc.c + +# ends up unused... +# XI_SRCS = xkbPrOtherEv.c + +CSRCS = $(DDX_SRCS) $(DIX_SRCS) $(XI_SRCS) $(XKBFILE_SRCS) \ + $(X11_SRCS) ddxVT.c ddxPrivate.c ddxKillSrv.c + +LIBRARY=libxkb + diff --git a/xorg-server/xkb/xkb.c b/xorg-server/xkb/xkb.c index 4ff2d5fef..08dd9862d 100644 --- a/xorg-server/xkb/xkb.c +++ b/xorg-server/xkb/xkb.c @@ -5581,6 +5581,8 @@ ProcXkbGetKbdByName(ClientPtr client) if (!(client->xkbClientFlags&_XkbClientInitialized)) return BadAccess; + memset(&mrep,0,sizeof(mrep)); //MH + CHK_KBD_DEVICE(dev, stuff->deviceSpec, client, access_mode); xkb = dev->key->xkbInfo->desc; diff --git a/xorg-server/xkb/xkbActions.c b/xorg-server/xkb/xkbActions.c index aea479cd1..d50334999 100644 --- a/xorg-server/xkb/xkbActions.c +++ b/xorg-server/xkb/xkbActions.c @@ -1021,15 +1021,15 @@ _XkbFilterDeviceBtn( XkbSrvInfoPtr xkbi, DeviceIntPtr dev; int button; - if (xkbi->device == inputInfo.keyboard) - return 0; - if (filter->keycode==0) { /* initial press */ _XkbLookupButtonDevice(&dev, pAction->devbtn.device, serverClient, DixUnknownAccess, &button); if (!dev || !dev->public.on || dev == inputInfo.pointer) return 1; + if (xkbi->device == inputInfo.keyboard) + return 0; + button= pAction->devbtn.button; if ((button<1)||(button>dev->button->numButtons)) return 1; diff --git a/xorg-server/xkb/xkbInit.c b/xorg-server/xkb/xkbInit.c index 3a0e375e8..a2993b6cd 100644 --- a/xorg-server/xkb/xkbInit.c +++ b/xorg-server/xkb/xkbInit.c @@ -87,10 +87,10 @@ typedef struct _SrvXkmInfo { /***====================================================================***/ #ifndef XKB_BASE_DIRECTORY -#define XKB_BASE_DIRECTORY "/usr/lib/X11/xkb" +#define XKB_BASE_DIRECTORY "xkbdata" #endif #ifndef XKB_BIN_DIRECTORY -#define XKB_BIN_DIRECTORY XKB_BASE_DIRECTORY +#define XKB_BIN_DIRECTORY "." #endif #ifndef XKB_DFLT_RULES_FILE #define XKB_DFLT_RULES_FILE "base" @@ -114,8 +114,8 @@ typedef struct _SrvXkmInfo { #define XKB_DFLT_RULES_PROP True #endif -char * XkbBaseDirectory= XKB_BASE_DIRECTORY; -char * XkbBinDirectory= XKB_BIN_DIRECTORY; +const char * XkbBaseDirectory= XKB_BASE_DIRECTORY; +const char * XkbBinDirectory= XKB_BIN_DIRECTORY; static int XkbWantAccessX= 0; static Bool rulesDefined= False; |