Ooops, I messed the script. Well, the email is mine :)
On Wed, Aug 05, 2009 at 08:18:55PM +0200, [email protected] wrote: > From: Tiago Vignatti <[email protected]> > > The server was processing ET_RawMotion type when the cursor was wrapping to > another screen and getting wrong valuator values. This fix such issue > considering only ET_Motion, ET_KeyPress, ET_KeyRelease, ET_ButtonPress and > ET_ButtonRelease types when the cursor detects a new screen. > > Signed-off-by: Tiago Vignatti <[email protected]> > --- > mi/mieq.c | 24 ++++++++++++++++-------- > 1 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/mi/mieq.c b/mi/mieq.c > index 6ec2dba..b52ed84 100644 > --- a/mi/mieq.c > +++ b/mi/mieq.c > @@ -367,14 +367,22 @@ mieqProcessDeviceEvent(DeviceIntPtr dev, > /* Custom event handler */ > handler = miEventQueue.handlers[event->any.type]; > > - if (dev && screen && screen != DequeueScreen(dev) && !handler) { > - /* Assumption - screen switching can only occur on motion events. */ > - DequeueScreen(dev) = screen; > - x = event->device.root_x; > - y = event->device.root_y; > - NewCurrentScreen (dev, DequeueScreen(dev), x, y); > - } > - else { > + switch (event->any.type) { > + /* Catch events that include valuator information and check if they > + * are changing the screen */ > + case ET_Motion: > + case ET_KeyPress: > + case ET_KeyRelease: > + case ET_ButtonPress: > + case ET_ButtonRelease: > + if (dev && screen && screen != DequeueScreen(dev) && !handler) { > + DequeueScreen(dev) = screen; > + x = event->device.root_x; > + y = event->device.root_y; > + NewCurrentScreen (dev, DequeueScreen(dev), x, y); > + break; > + } > + default: > master = CopyGetMasterEvent(dev, event, &mevent); > > if (master) > -- > 1.5.6.3 Tiago _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
