oqtdev
1st February 2012, 02:37
Hi folks, I have a strange issue with detecting swipe / drag gestures.
We have two custom designed devices running an ARM processor, Linux 2.6.34 and both have touch panels on top of an LCD display. I built Qt 4.8.0 for this hardware without much difficulty, with no changes to the source code or drivers.
Qt on this platform currently uses TSLIB (the latest as on 2012-01-30, checked out from GIT) to handle touch panel events. I've got most Qt / touch panel features working fine. The Qt libraries are exactly the same on both hardware variants.
The problem : Qt only detects swipe / drag events on one platform and not on the other. I first thought it may be a problem with TSLIB not detecting continuous events, so ran ts_calibrate and ts_print / ts_print_raw. Sure enough, it does keep printing position / pressure data as I swipe or drag on *both* screens. Still, Qt only responds to drag/swipe on one and not on the other.
I also tried disabling TSLIB and using the LinuxTP protocol by changing the QWS_MOUSE_PROTO variable from "tslib:/dev/input/event0" to "linuxtp:/dev/input/event0" but Qt doesn't detect any touch panel events that way.
I can see the same behaviour differences (swipe/drag working on one and not the other platform) on the Qt demo applications in demos/embedded/flickable and fluidlauncher.
Has anyone come across similar behaviour? If so, what did you do to solve it?
Am I missing something in trying to get LinuxTP to work?
Let me know what details will be helpful and I'll post them.
Thanks in advance.
We have two custom designed devices running an ARM processor, Linux 2.6.34 and both have touch panels on top of an LCD display. I built Qt 4.8.0 for this hardware without much difficulty, with no changes to the source code or drivers.
Qt on this platform currently uses TSLIB (the latest as on 2012-01-30, checked out from GIT) to handle touch panel events. I've got most Qt / touch panel features working fine. The Qt libraries are exactly the same on both hardware variants.
The problem : Qt only detects swipe / drag events on one platform and not on the other. I first thought it may be a problem with TSLIB not detecting continuous events, so ran ts_calibrate and ts_print / ts_print_raw. Sure enough, it does keep printing position / pressure data as I swipe or drag on *both* screens. Still, Qt only responds to drag/swipe on one and not on the other.
I also tried disabling TSLIB and using the LinuxTP protocol by changing the QWS_MOUSE_PROTO variable from "tslib:/dev/input/event0" to "linuxtp:/dev/input/event0" but Qt doesn't detect any touch panel events that way.
I can see the same behaviour differences (swipe/drag working on one and not the other platform) on the Qt demo applications in demos/embedded/flickable and fluidlauncher.
Has anyone come across similar behaviour? If so, what did you do to solve it?
Am I missing something in trying to get LinuxTP to work?
Let me know what details will be helpful and I'll post them.
Thanks in advance.