[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#528994: Acknowledgement (xserver-xorg-core: Corrupt mouse motion events send pointer to top-left of screen)



Assuming that this xorg.conf option works properly

	Option		"AccelerationScheme"	"none"

I don't think it's an acceleration bug.  I grabbed the debugging
symbols package and attached to Xorg, and I was seeing the
pDev->last.valuators array getting zeroed out in GetPointerEvents,
(getevents.c) somewhere around this block of code:

    events = updateFromMaster(events, pDev, &num_events);

    if (flags & POINTER_ABSOLUTE)
    {
        if (flags & POINTER_SCREEN) /* valuators are in screen coords */
        {

            valuators[0] = rescaleValuatorAxis(valuators[0], NULL,
                                               pDev->valuator->axes + 0,
                                               scr->width);
            valuators[1] = rescaleValuatorAxis(valuators[1], NULL,
                                               pDev->valuator->axes + 1,
                                               scr->height);
        }

        moveAbsolute(pDev, &x, &y, first_valuator, num_valuators, valuators);
    } else {
        if (flags & POINTER_ACCELERATE)
            accelPointer(pDev, first_valuator, num_valuators, valuators, ms);
        moveRelative(pDev, &x, &y, first_valuator, num_valuators, valuators);
    }

That causes the code to add the deltas to 0,0 to get the next absolute
position.

It's hard to pinpoint exactly where this is happening, because of the
code optimization, but the "updateFromMaster" call now seems like the
next place to look.



Reply to: