On Wed, Jan 18, 2012 at 06:04:13PM -0800, Chase Douglas wrote: > Indirect touch devices provide valuator values in pure device > coordinates. They also don't need to be fixed up for screen crossings. > > Signed-off-by: Chase Douglas <[email protected]> > --- > dix/getevents.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/dix/getevents.c b/dix/getevents.c > index d0014e6..2946b16 100644 > --- a/dix/getevents.c > +++ b/dix/getevents.c > @@ -1867,7 +1867,12 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr > dev, uint32_t ddx_touchid, > if (need_rawevent) > set_raw_valuators(raw, &mask, raw->valuators.data); > > - scr = scale_to_desktop(dev, &mask, &devx, &devy, &screenx, &screeny); > + /* Indirect device touch coordinates are not used for cursor positioning. > + * They are merely informational, and are provided in device coordinates. > + * The device sprite is used for positioning instead, and it is already > + * scaled. */ > + if (t->mode == XIDirectTouch) > + scr = scale_to_desktop(dev, &mask, &devx, &devy, &screenx, &screeny); > if (emulate_pointer) > scr = positionSprite(dev, Absolute, &mask, > &devx, &devy, &screenx, &screeny); > -- > 1.7.8.3
merged, thanks. Cheers, Peter _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
