Touchscreen-Rechtsklick-Emulation funktioniert nicht

2770
Dmitry Grigoryev

Ich habe ein Touchscreen-Gerät, für das ich die Emulation der dritten Schaltfläche aktiviert habe xinput:

Device 'ft5x_ts': ... Evdev Third Button Emulation (257): 1 Evdev Third Button Emulation Timeout (258): 750 Evdev Third Button Emulation Button (259): 3 Evdev Third Button Emulation Threshold (260): 20 ... 

( ganzes Protokoll )

Die Emulation funktioniert jedoch nicht - die Click-Events der rechten Maustaste werden nie angezeigt. Hier ist das Beispiel der xevAusgabe:

ButtonPress event, serial 45, synthetic NO, window 0x2000001, root 0x44, subw 0x0, time 2058845, (94,90), root:(96,117), state 0x100, button 1, same_screen YES  MotionNotify event, serial 45, synthetic NO, window 0x2000001, root 0x44, subw 0x0, time 2059658, (94,89), root:(96,116), state 0x100, is_hint 0, same_screen YES  MotionNotify event, serial 45, synthetic NO, window 0x2000001, root 0x44, subw 0x0, time 2060101, (94,89), root:(96,116), state 0x100, is_hint 0, same_screen YES  ButtonRelease event, serial 45, synthetic NO, window 0x2000001, root 0x44, subw 0x0, time 2060101, (94,89), root:(96,116), state 0x100, button 1, same_screen YES 

Wie Sie sehen können, ist das Intervall zwischen ButtonPressund ButtonRelease750 ms und die Bewegung des Zeigers liegt unter dem Schwellenwert von 20 Pixeln. Der zu druckende xevButton 1 wird angezeigt, nicht der Button 3.

Ironisch, wenn ich meine USB-Maus auf dieselbe Weise konfiguriere, emulieren die langen Tasten 1 den Button 3:

ButtonPress event, serial 45, synthetic NO, window 0x2000001, root 0x44, subw 0x0, time 2870367, (48,82), root:(50,109), state 0x0, button 3, same_screen YES  MotionNotify event, serial 45, synthetic NO, window 0x2000001, root 0x44, subw 0x0, time 2870422, (49,81), root:(51,108), state 0x400, is_hint 0, same_screen YES  ButtonRelease event, serial 45, synthetic NO, window 0x2000001, root 0x44, subw 0x0, time 2870590, (49,81), root:(51,108), state 0x400, button 3, same_screen YES 

Kann mir jemand helfen, vielleicht auf einige Anomalien hinzuweisen, die ich nicht bemerkt habe?

PS. Dritte Tastenemulation zur Arbeit mit meinem Touchscreen unter Debian Wheezy, und hörte auf zu arbeiten, wenn ich Jessie aufgewertet. Im Moment habe ich mein letztes Backup zurückgesetzt, um die Wheezy-Installation wiederherzustellen, aber ich brauche immer noch eine Lösung, da Wheezy ausläuft.

1
Gibt es einen Unterschied, wenn Sie `Evdev Third Button Emulation Threshold (260) aufdrehen:` sagen, 50? Leathe vor 8 Jahren 0
@Leathe Nope. Außerdem ist 20 Pixel bereits eine sehr große Schwelle, und manchmal sind kleine Scroll- / Drag-Aktionen schwierig auszuführen. Dmitry Grigoryev vor 8 Jahren 0

1 Antwort auf die Frage

0
Dmitry Grigoryev

Nach diesem und diesem Rechtsklick - Emulation ein verbreitetes Problem in Debian Jessie ist, nicht auf eine bestimmte Verteilung begrenzt. Eine Problemumgehung, die für mich (auf einem 10-Punkt-Touchscreen) funktionierte, ist die Verwendung des Dienstprogramms twofing :

git clone https://github.com/Plippo/twofing sudo apt-get install build-essential libx11-dev libxtst-dev libxi-dev x11proto-randr-dev libxrandr-dev cd twofing; make ./twofing /dev/input/eventXX 

eventXXist das Gerät, das dem Touchscreen entspricht, das mit gefunden werden kann xinput list. Das Rechtsklick-Ereignis wird durch Klicken mit zwei Fingern ausgeführt. Als Bonus erhalten Sie die Bildlauf-Geste (Ziehen mit zwei Fingern) und die Zoom-In / Zoom-Out-Geste (Zwei-Finger-Prise). Ich habe es nicht twofingmit einem resistiven Touchscreen versucht, aber es wird wahrscheinlich nicht funktionieren, da resistive Touchscreens kein Multitouch unterstützen.