summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-02-02 17:18:16 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-02-23 17:52:40 +1000
commit0b4066c116e07918a13dc6b4159df7ac9eb92b4b (patch)
treefceb13bfcefb0d4089b3a201231deb67688da216
parent085d50360863ccc8280cd3eccea2bcb4f3dd9a14 (diff)
xkb: _XkbFilterRedirectKey needs to pass InternalEvents down.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--xkb/xkbActions.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index afc42f31d..3a2c51740 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -798,7 +798,7 @@ _XkbFilterRedirectKey( XkbSrvInfoPtr xkbi,
unsigned keycode,
XkbAction * pAction)
{
-xEvent ev;
+DeviceEvent ev;
int x,y;
XkbStateRec old;
unsigned mods,mask;
@@ -813,9 +813,11 @@ ProcessInputProc backupproc;
return 1;
GetSpritePosition(inputInfo.pointer, &x,&y);
- ev.u.keyButtonPointer.time = GetTimeInMillis();
- ev.u.keyButtonPointer.rootX = x;
- ev.u.keyButtonPointer.rootY = y;
+ ev.header = ET_Internal;
+ ev.length = sizeof(DeviceEvent);
+ ev.time = GetTimeInMillis();
+ ev.root_x = x;
+ ev.root_y = y;
if (filter->keycode==0) { /* initial press */
if ((pAction->redirect.new_key<xkbi->desc->min_key_code)||
@@ -829,9 +831,8 @@ ProcessInputProc backupproc;
filter->filter = _XkbFilterRedirectKey;
filter->upAction = *pAction;
- /* XXX: what about DeviceKeyPress */
- ev.u.u.type = KeyPress;
- ev.u.u.detail = pAction->redirect.new_key;
+ ev.type = ET_KeyPress;
+ ev.detail.key = pAction->redirect.new_key;
mask= pAction->redirect.vmods_mask;
mods= pAction->redirect.vmods;
@@ -861,9 +862,8 @@ ProcessInputProc backupproc;
}
else if (filter->keycode==keycode) {
- /* XXX: what about DeviceKeyRelease */
- ev.u.u.type = KeyRelease;
- ev.u.u.detail = filter->upAction.redirect.new_key;
+ ev.type = ET_KeyRelease;
+ ev.detail.key = filter->upAction.redirect.new_key;
mask= filter->upAction.redirect.vmods_mask;
mods= filter->upAction.redirect.vmods;