Double Click Doesn't Work

A customer is using goodix GT911 capacitive touch pad. I2C is used as connection interface. The driver has been added to kernel and loaded successfully. Single click, drag and drop work. But double click(double tap) fails. GPIO Tool on desktop can’t be open. I changed some behaviors in lxsession, but it doesn’t work as well. Similar changes did improve for another resistive touch pad.

/etc/xdg/lxsession/LXDE/desktop.conf 

iNet/DoubleClickTime=500
iNet/DoubleClickDistance=100
or
iNet/DoubleClickTime=400
iNet/DoubleClickDistance=20

This is log from double tap with evtest

Event: time 1493920255.037249, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 69
Event: time 1493920255.037249, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 322
Event: time 1493920255.037249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 322
Event: time 1493920255.037249, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 33
Event: time 1493920255.037249, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 33
Event: time 1493920255.037249, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1493920255.037249, type 3 (EV_ABS), code 0 (ABS_X), value 322
Event: time 1493920255.037249, type 3 (EV_ABS), code 1 (ABS_Y), value 322
Event: time 1493920255.037249, -------------- SYN_REPORT ------------
Event: time 1493920255.077530, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1493920255.077530, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1493920255.077530, -------------- SYN_REPORT ------------
Event: time 1493920255.169691, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 70
Event: time 1493920255.169691, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 329
Event: time 1493920255.169691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 324
Event: time 1493920255.169691, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 25
Event: time 1493920255.169691, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 25
Event: time 1493920255.169691, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1493920255.169691, type 3 (EV_ABS), code 0 (ABS_X), value 329
Event: time 1493920255.169691, type 3 (EV_ABS), code 1 (ABS_Y), value 324
Event: time 1493920255.169691, -------------- SYN_REPORT ------------
Event: time 1493920255.260596, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1493920255.260596, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1493920255.260596, -------------- SYN_REPORT ------------

How could I fix this? Thanks!

Which input driver are you using?

Not sure what exactly happens here, but it could be that DoubleClickTime only gets applied to actual pointer devices (mouse), and this touch screen really represents a multitouch device…

Maybe it is worth trying a different input driver such as xf86-input-libinput.

xf86-input-evdev was used before. I use OE to generate new image including xf86-input-libinput
Add libinput to local.conf

IMAGE_INSTALL_append = " xf86-input-libinput"

Modify /usr/share/X11/xorg.conf.d/10-evdev.conf

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

But get error when calibrating.

root@colibri-imx7:~# xinput_calibrator_once.sh 
xrandr: Failed to get size of gamma for output default
ERROR: XorgPrint Calibrator does not support the supplied --output-type

Under normal operation there is no need to calibrate capacitive touch devices.

Hi,

I’m using the same Goodix Multi touch capacitive touchscreen with iMX7d BSP 2.8b5 and with evdev or libinput I have the same behavior. Single click, drag and drop working but neither double click or right click.

Is there special setting to apply in xorg.conf?

Enabling Tapping option seems without effect and libinput-list-devices reports:
Device:           Goodix Capacitive TouchScreen
Kernel:           /dev/input/event3
Group:            3
Seat:             seat0, default
Capabilities:     touch 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      identity matrix
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Due to “n/a” entries, I wonder if it is properly configured/detected?

Regards

Could you provide the dmesg log in a file? What is the output of lsmod? How do you do a right click on a touch screen?

Hi,

Find attached dmesg, lsmod and other xinput xorg logs.
It seems tapping is not enabled (n/a) in libinput-list-devices output.

When I “double tap” or “double click” nothing happens.
For right click, I have enabled option “ClickMethod” “clickfinger”. I heave expected that clicking with two fingers will generate a right click.

Regards

link text

Those options only apply to devices with pointer capabilities. Libinput does not support gesture recognition for touch screens. That functionality is usually provided by toolkits or external daemons like touchegg or Geis\Grail.

Ok thanks for clarifications

You are welcome.

Hi @ykrons

I’m trying use the same capacitive touch that you has used. So, I want to know which driver You have used for this?
Thanks!

I’m using default evdev but still don’t have double click/tap on LXDE environment, but simple tap must be ok for our application, that’s why we don’t investigate much.