dmx: core events are always in screen coordinates when passed to GPE.
This fixes input in dmx, the pointer appears at the right positions to the clients now. Also mark the spot where we pass in the button state as valuator to GPE with a FIXME. (??) Tested-by: Kevin Martin Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
43a2eb794f
commit
e7c2598f56
|
@ -183,7 +183,7 @@ static void enqueueMotion(DevicePtr pDev, int x, int y)
|
|||
|
||||
GetEventList(&events);
|
||||
nevents = GetPointerEvents(events, p, MotionNotify, detail,
|
||||
POINTER_ABSOLUTE, 0, 2, valuators);
|
||||
POINTER_ABSOLUTE | POINTER_SCREEN, 0, 2, valuators);
|
||||
for (i = 0; i < nevents; i++)
|
||||
mieqEnqueue(p, (InternalEvent*)(events + i)->event);
|
||||
return;
|
||||
|
@ -688,7 +688,7 @@ void dmxEnqueue(DevicePtr pDev, int type, int detail, KeySym keySym,
|
|||
detail = dmxGetButtonMapping(dmxLocal, detail);
|
||||
GetEventList(&events);
|
||||
nevents = GetPointerEvents(events, p, type, detail,
|
||||
POINTER_ABSOLUTE,
|
||||
POINTER_ABSOLUTE | POINTER_SCREEN,
|
||||
0, /* first_valuator = 0 */
|
||||
0, /* num_valuators = 0 */
|
||||
valuators);
|
||||
|
@ -700,9 +700,9 @@ void dmxEnqueue(DevicePtr pDev, int type, int detail, KeySym keySym,
|
|||
GetEventList(&events);
|
||||
valuators[0] = e->xmotion.x;
|
||||
valuators[1] = e->xmotion.y;
|
||||
valuators[2] = e->xmotion.state;
|
||||
valuators[2] = e->xmotion.state; /* FIXME: WTF?? */
|
||||
nevents = GetPointerEvents(events, p, type, detail,
|
||||
POINTER_ABSOLUTE, 0, 3, valuators);
|
||||
POINTER_ABSOLUTE | POINTER_SCREEN, 0, 3, valuators);
|
||||
for (i = 0; i < nevents; i++)
|
||||
mieqEnqueue(p, (InternalEvent*)(events + i)->event);
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue
Block a user