summaryrefslogtreecommitdiff
authorPeter Hutterer <peter.hutterer@who-t.net>2009-09-25 04:53:33 (GMT)
committer Peter Hutterer <peter.hutterer@who-t.net>2009-09-26 02:25:19 (GMT)
commite7c2598f565e8252dd66ee3e6212b310856476cb (patch) (side-by-side diff)
tree5cb8897730bfc5548107cd8e691f0cac765ae515
parent43a2eb794f19a2ba56d653f465fc5f6b2ff0d3d3 (diff)
downloadxserver-e7c2598f565e8252dd66ee3e6212b310856476cb.zip
xserver-e7c2598f565e8252dd66ee3e6212b310856476cb.tar.gz
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>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--hw/dmx/input/dmxevents.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/dmx/input/dmxevents.c b/hw/dmx/input/dmxevents.c
index 5c3d792..70737b4 100644
--- a/hw/dmx/input/dmxevents.c
+++ b/hw/dmx/input/dmxevents.c
@@ -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;