Xorg ws - Wheel Emulation - TouchScreen - Update mouse pointer - Lenovo C930 (et al)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Xorg ws - Wheel Emulation - TouchScreen - Update mouse pointer - Lenovo C930 (et al)

David Rinehart
First contribution (OpenBSD Rocks! - The OS and the process)

Issue background:

The ws xorg driver Wheel Emulation seems to be working fine for others with
the Thinkpad TrackPoint center button and my stylus.  Similar behavior
should also work for touchscreens, to enable touch scrolling.  Wheel
emulation does work properly for a stylus and this is the reason to
report as
a bug instead of a feature request.

Precondition:

Enable Wheel emulation for the TouchScreen device with xinput, similar to:

     xinput --set-prop 9 "WS Pointer Wheel Emulation Button" 1
     xinput --set-prop 9 "WS Pointer Wheel Emulation" 1

Expected behavior:

Touch a window on the screen with a finger and slide finger to scroll that
window's content.

Actual behavior:

Touching the screen does not move the mouse pointer at all.  Touch a window
that does not have mouse focus and slide finger to scroll.  Since the mouse
pointer is not moved to the location where the window was touched, the
scrolling and tapping events are sent to wherever the mouse pointer was
located before the touch of the screen.  Taps are registered as mouse
clicks.
Scrolling happens if the mouse pointer is over scrollable content, just
not in
the expected window that was touched.

Note: The Lenovo C930 comes with a stylus.  The stylus works fine because
mouse pointer tracking starts when hovering at a close distance to the
screen. The cursor always moves to the location where the screen is
touched with the stylus and the expected window content is scrolled.

Does not seem to be hardware specific.  Let me know if I should provide
additional detail.

-----  Thank you for all the work on OpenBSD!

Also, thanks to those who worked through and shared info for the C930, it
was a great help!
C930 tip:  try outputs.spkr_source=mix2

-----

$ xinput list
+ Virtual core pointer                        id=2    [master pointer  (3)]
|   + Virtual core XTEST pointer                  id=4    [slave
pointer  (2)]
|   + /dev/wsmouse0                               id=7    [slave
pointer  (2)]
|   + /dev/wsmouse1                               id=8    [slave
pointer  (2)]
|   + /dev/wsmouse2                               id=9    [slave
pointer  (2)]
|   + /dev/wsmouse3                               id=10    [slave
pointer  (2)]
+ Virtual core keyboard                       id=3    [master keyboard (2)]
     + Virtual core XTEST keyboard                 id=5    [slave
keyboard (3)]
     + /dev/wskbd                                  id=6    [slave
keyboard (3)]

$ doas wsconsctl|grep mouse
wsconsctl: Use explicit arg to view keyboard.map.
mouse.type=touch-panel
mouse.rawmode=1
mouse.scale=21,12412,7,6908,0,1920,1080
mouse.reverse_scrolling=0
mouse1.type=touch-panel
mouse1.rawmode=1
mouse1.scale=48,30942,13,17472,0,1920,1080
mouse1.reverse_scrolling=0
mouse2.type=touch-panelmachine
mouse2.rawmode=1
mouse2.scale=21,12412,7,6908,0,1920,1080
mouse2.reverse_scrolling=0
mouse3.type=touchpad
mouse3.rawmode=0
mouse3.scale=0,1212,0,792,0,12,12
mouse3.reverse_scrolling=0
mouse3.tp.tapping=1
mouse3.tp.scaling=0.636
mouse3.tp.swapsides=0
mouse3.tp.disable=0
mouse3.tp.edges=0.0,5.0,10.0,5.0