I just came across something. I was having the exact same problem with an HP Envy x360 Clickpad, and lo and behold this fixed it. The ButtonRelease event wasn't being sent when the button was released: it was only sent when all fingers were off the touchpad, and this caused odd, irritating behavior.
http://permalink.gmane.org/gmane.lin...el.input/38497
Yes, it's in the kernel, but you can just recompile this one kernel module. ( Outline of how to do that:
http://askubuntu.com/questions/16827...-kernel-module )
1. Download kernel source for your distro, do preparation steps like it says in guide above.
For me on Debian unstable:
Code:
# apt-get install linux-headers-`uname -r`
# apt-get install linux-source-3.16
# cd /usr/src
# tar xf linux-source*.xz
# cd linux-source-3.16*
# cp ../linux-headers-`uname -r`/Module.symvers .
# make oldconfig
and edit drivers/input/mouse/synaptics.c:
Comment out the entire clause "if (SYN_CAP_FORCEPAD(priv->ext_cap_0c)) {"
(Just put an #if 0 and #endif around the whole thing and the last else...patch shown below
Code:
--- old/linux-source-3.16/drivers/input/mouse/synaptics.c 2014-10-30 12:41:01.000000000 -0400
+++ linux-source-3.16/drivers/input/mouse/synaptics.c 2014-11-30 00:23:08.612060641 -0500
@@ -643,7 +643,7 @@
hw->left = (buf[0] & 0x01) ? 1 : 0;
hw->right = (buf[0] & 0x02) ? 1 : 0;
-
+#if 0
if (SYN_CAP_FORCEPAD(priv->ext_cap_0c)) {
/*
* ForcePads, like Clickpads, use middle button
@@ -680,7 +680,9 @@
hw->left = priv->report_press;
- } else if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
+ } else
+#endif
+ if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
/*
* Clickpad's button is transmitted as middle button,
* however, since it is primary button, we will report
2. Prepare and make modules
Code:
# make prepare
# make modules_prepare
# make SUBDIRS=scripts/mod
# make SUBDIRS=drivers/input/mouse modules
3. Overwrite current modules
Code:
# rmmod psmouse
(Removing the module will disable your mouse, but it will soon be reactivated)
(Also if you have any modules containing 'synaptics' loaded, just unload those...check lsmod)
# cp drivers/input/mouse/*.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse
# depmod -a
# modprobe psmouse
4. Now, it should be fixed. If it isn't, try rebooting in case somehow all the modules didn't get unloaded.