Input: Remove core keysyms from KeyClassRec

Instead of always keeping two copies of the keymap, only generate the
core keymap from the XKB keymap when we really need to, and use the XKB
keymap as the canonical keymap.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Daniel Stone
2008-10-18 20:26:00 +01:00
parent bc909f7136
commit 4fa3872dc2
16 changed files with 211 additions and 265 deletions

View File

@@ -137,7 +137,6 @@ typedef struct _GrabRec {
typedef struct _KeyClassRec {
CARD8 down[DOWN_LENGTH];
CARD8 postdown[DOWN_LENGTH];
KeySymsRec curKeySyms;
int modifierKeyCount[8];
struct _XkbSrvInfo *xkbInfo;
} KeyClassRec, *KeyClassPtr;

View File

@@ -322,11 +322,6 @@ extern _X_EXPORT int DeviceEnterNotify,DeviceLeaveNotify;
#define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress))
#define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease))
#define _XkbCoreKeycodeInRange(c,k) (((k)>=(c)->curKeySyms.minKeyCode)&&\
((k)<=(c)->curKeySyms.maxKeyCode))
#define _XkbCoreNumKeys(c) ((c)->curKeySyms.maxKeyCode-\
(c)->curKeySyms.minKeyCode+1)
#define XConvertCase(s,l,u) XkbConvertCase(s,l,u)
#undef IsKeypadKey
#define IsKeypadKey(s) XkbKSIsKeypad(s)
@@ -510,6 +505,7 @@ extern _X_EXPORT XkbAction *XkbResizeKeyActions(
extern _X_EXPORT void XkbUpdateKeyTypesFromCore(
DeviceIntPtr /* pXDev */,
KeySymsPtr /* syms */,
KeyCode /* first */,
CARD8 /* num */,
XkbChangesPtr /* pChanges */
@@ -531,9 +527,8 @@ extern _X_EXPORT void XkbUpdateActions(
XkbEventCausePtr /* cause */
);
extern _X_EXPORT void XkbUpdateCoreDescription(
DeviceIntPtr /* keybd */,
Bool /* resize */
extern _X_EXPORT KeySymsPtr XkbGetCoreMap(
DeviceIntPtr /* keybd */
);
extern _X_EXPORT void XkbApplyMappingChange(