| Summary: |
Kinput.c KdEnqueuePointerEvent function problem |
| Product: |
xorg
|
Reporter: |
TylerLi <sdssly> |
| Component: |
Driver/fbdev | Assignee: |
Xorg Project Team <xorg-team> |
| Status: |
RESOLVED
FIXED
|
QA Contact: |
Xorg Project Team <xorg-team> |
| Severity: |
normal
|
|
|
| Priority: |
medium
|
CC: |
sdssly
|
| Version: |
git | |
|
| Hardware: |
ARM | |
|
| OS: |
All | |
|
| Whiteboard: |
|
|
i915 platform:
|
|
i915 features:
|
|
| Attachments: |
|
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
The KdEnqueuePointerEvent cannot work with tslib driver I am running the Xfbdev on an ARM platform, using the git source and using this command to config: ./autogen.sh --prefix=/arm1/opt/fdo --disable-ipv6 --enable-tslib --enable-kdrive --enable-xfbdev --disable-glx --disable-xorg --disable-xorgcfg --disable-dri --enable-xcalibrate --enable-screensaver the screensize is 480x272 Use this command to launch the Xfbdev: ./Xfbdev -mouse tslib,3,device=/dev/input/event0 I add some ErrorF in this function, I click two times on the touchscreen: ErrorF("%s %s flags=0x%x rx=%d ry=%d LastState=0x%x T=%d\n", __FUNCTION__, pi->name, flags, rx, ry, pi->buttonState, pi->transformCoordinates); ErrorF("x=%d y=%d [%d-%d] dixflags=0x%x buttons=0x%x\n", x, y, pi->dixdev->last.valuators[0], pi->dixdev->last.valuators[1], dixflags, flags); Below is the debug log first click: KdEnqueuePointerEvent Touchscreen flags=0x1 rx=11 ry=261 LastState=0x0 T=1 x=11 y=261 [0-0] dixflags=0x4 buttons=0x1 type=0x6 x=11 y=261 b=0 type=0x4 x=11 y=261 b=1 KdEnqueuePointerEvent Touchscreen flags=0x0 rx=11 ry=261 LastState=0x1 T=1 x=11 y=261 [11-261] dixflags=0x0 buttons=0x0 type=0x5 x=11 y=261 b=1 Second click: KdEnqueuePointerEvent Touchscreen flags=0x1 rx=62 ry=222 LastState=0x0 T=1 x=62 y=222 [22-271] dixflags=0x4 buttons=0x1 type=0x6 x=62 y=222 b=0 type=0x4 x=62 y=222 b=1 KdEnqueuePointerEvent Touchscreen flags=0x0 rx=62 ry=222 LastState=0x1 T=1 x=62 y=222 [62-222] dixflags=0x0 buttons=0x0 type=0x5 x=62 y=222 b=1 the problem is the last.valuators have wrong values. On the ButtonPress event, the last.valuators store the X/Y postion value, however, on the ButtonRelease event, it adds the old X/Y postion value. this causes the second click has wrong [22-271] value