Public bug reported: As I will explain below, it appears that this bug is probably a manifestation of onboard using a completely incorrect algorithm for detecting button presses and releases that only accidentally works on legacy input devices and fails completely on a touchscreen.
HP EliteBook 2740p is a convertible Tablet PC with a screen that can rotate from Laptop mode into tablet mode. In tablet mode, the screen covers the keyboard and an on screen keyboard is a necessity. This machine has 4+ input devices: - multitouch touch screen - stylus on screen - pointing stick - trackpad - also, 3D accelerometer which could theoretically be used to move cursor. These are without plugging in an external 3D space navigator, mouse, joystick, gamepad, eyemouse, etc. I can type with: - Touch screen stylus on screen - Touchpad (cumbersome and not at all useful in tablet mode) - pointing stick (AKA erasor/clitoris/trackpoint(tm)/etc) (cumbersome and not at all useful in tablet mode) - (physical keyboard) I can not type using - Finger on multitouch screen This is not a calibration issue. This is not a rotation issue; even though I have been playing with rotation, the screen and input devices are currently unrotated and I can type in xvkbd or florence on screen keyboards with stylus or finger. onboard complet xsetwacom --list Serial Wacom Tablet WACf00e stylus id: 13 type: STYLUS Serial Wacom Tablet WACf00e eraser id: 15 type: ERASER Serial Wacom Tablet WACf00e touch id: 16 type: TOUCH # finger # Not shown: synaptics touchpad The following error message appears frequently in the terminal tab from which onboard was started (enough to render the tab unusable): (onboard:5529): Gdk-CRITICAL **: gdk_device_get_axis_use: assertion 'index_ < device->axes->len' failed This error appears whether using stylus or finger (but not touchpad or stick) and occurs more than once per key press as you hover. Note the following potentially relevant general behavior differences between these 4 pointing devices. With the three that work, the cursor tracks movement when not clicking/dragging. The one that doesn't warps the mouse directly to the point touched and generates events at that point and hides the mouse cursor since the mouse cursor can't track a raised finger. Default onboard preferences were used. xev shows Button Press, Motion Notify, and Button release events when touching with finger. Similar with stylus. Differences, stylus sends motion notify updates when near screen, finger doesn't. Finger sends motion notify updates while being held still touching screen, stylus does not. Here are events captured with both buton and stylus: stylus: ButtonRelease event, serial 37, synthetic NO, window 0x5600001, root 0x80, subw 0x0, time 9012106, (110,108), root:(175,676), state 0x100, button 1, same_screen YES Finger: ButtonRelease event, serial 37, synthetic NO, window 0x5600001, root 0x80, subw 0x0, time 9065337, (96,85), root:(161,653), state 0x100, button 1, same_screen YES Another difference is the "state" in the motion notify events: Stylus: 0x0, 0x0, ... 0x100, 0x100, 0x100, ... 0x0, 0x0, .... Finger: 0x100 events only. erasor or touchpad: generate 0x0 events. This suggests that the bug in the software is to look at the "state" variable in motion notify events to determine presses and releases instead of using the correct algorithm of looking at buttonpress and buttonrelease events. State can tell you the difference between a drag and a mere traverse but it is not a valid source of press/release event detection. The stylus can report its position when hovering over, but near, the glass. The finger is only reported when it is actually pressing. Thus, there are no motion notify events when the finger is withdrawn. Multitouch trivia: double finger pan movements get converted to buttons 4,5,6,7. In other words, they are converted to scrollwheel motion. The finger motion is not reported as cursor motion. pinch zoom in/out and rotate don't seem to be meaningfully reported. You apparently have to register for xinput 2.2 events or something to get the position of each finger. Note that in order to simulate this problem without a touchscreen device, one could use a second trackpad or wacom digitizer with a modified driver send only touchscreen compatible events. Or write a program to pop up a window in which mouse movements (with button down only) are sent to another window as synthetic mouse movements. ProblemType: Bug DistroRelease: Ubuntu 14.04 Package: onboard 1.0.0-0ubuntu4 ProcVersionSignature: Ubuntu 3.16.0-30.40~14.04.1-generic 3.16.7-ckt3 Uname: Linux 3.16.0-30-generic x86_64 ApportVersion: 2.14.1-0ubuntu3.10 Architecture: amd64 CurrentDesktop: Unity Date: Tue May 19 00:17:18 2015 InstallationDate: Installed on 2015-05-16 (2 days ago) InstallationMedia: Ubuntu 14.04.2 LTS "Trusty Tahr" - Release amd64 (20150218.1) SourcePackage: onboard UpgradeStatus: No upgrade log present (probably fresh install) ** Affects: onboard (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug trusty -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1456452 Title: Works with stylus but not finger: HP Elitebook 2740P Tablet PC To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/onboard/+bug/1456452/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs