Ubuntu: Touchscreen mouse “locks” on a ThinkCentre 91Z?



Question:

I have a Lenovo ThinkCentre 91Z all in one pc with AMD graphics and ILITEK multitouch. I am using ubuntu 12.10 and latest catalyst drivers and it seems to be working ok.

I have a problem similar to the one referenced here http://ubuntuforums.org/archive/index.php/t-2064976.html

I am testing this in browsers (chrome, chromium, firefox, opera) but it happens elsewhere also. When I click around the screen it all seems ok for a few minutes and then the touchscreen mouse click seems to get stuck clicking (holding) some location and clicks anywhere else will actually select some area of screen (like click and drag). This brakes a lot of functionallity, some pages are impossible to scroll afterwards etc.. Everything is resolved if I log out and log in again.

I don't know anyting about the touchscreen configuration/drivers/compatibility so I dont know where to look. Any ideas?


Solution:1

I actually made the thread you linked to (http://ubuntuforums.org/archive/index.php/t-2064976.html), and I thought I should share my very, very crude and dirty solution to the problem.

After having this problem for way too long without managing to really fix it, I finally gave up and created a very simple python-script that will monitor all mouse events with xinput and then trigger a new mouse 10 event on every mouse release.

At first I tried to only look for unmatched mouse presses (mouse press after a mouse press), but somehow the bug sometimes seems to appear without that happening, why I instead simply fire a mouse event on every mouse release.

You will also likely have to modify the code a bit so that it listens to the events from your monitor and not the Acer I have (run xinput to find the name). The script also requires that you have xdotool installed (you should be able to get it through apt-get) which is a simple tool for triggering input events.

Anyway, I hope this helps a bit until a real solution can be found :)

#!/usr/bin/env python   import subprocess   proc=subprocess.Popen(["xinput","--test", 'Acer T231H'], stdout=subprocess.PIPE)   while True:           line = proc.stdout.readline().split(' ')          if line[0] == "button" and line[1] == "release":              subprocess.call(['xdotool', 'mousedown', '10'])  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »