让 Synaptics 触控板发送实际滚轮事件

让 Synaptics 触控板发送实际滚轮事件

我有一台带有 Synaptics 触控板的笔记本电脑(三星 9 系列),上面装有 Windows XP。

此触控板的一个很好的功能是,您可以将两根手指放在触控板上,然后上下拖动来进行滚动。

但真正令人恼火的是:Synaptics 触控板并不像现有的任何其他滚轮那样工作,也不会向 Windows 发送滚轮事件,而是出于某种原因,具有特殊的滚动逻辑。它将鼠标光标更改为滚动条的图形,然后使用看似专有的机制滚动窗口本身。

问题在于这种滚动功能并不适用于所有应用。例如,它不适用于基于 GTK 的应用,而我经常使用这些应用。

我真的不知道为什么 Synaptics 开发人员选择以牺牲用户利益为代价来重新发明滚轮滚动……

无论如何,有没有办法让我的触控板发送标准滚轮事件,以便它可以在所有应用程序中工作?

答案1

使用 synaptics 驱动程序在 GTK+ 应用程序中滚动

使用 Windows 笔记本电脑时,您可能会被突触触摸板困扰。

那些蹩脚的驱动程序通过所谓的虚拟滚动在光标下方创建一个假窗口来显示其自定义的滚动图标。

该窗口会干扰发送到下方应用程序的信号,而 GTK 由于某种原因无法检测到该信号(很可能是开发人员不关心我们)。结果就是无法在流行的 GTK 应用程序(如 Wireshark 或 Pidgin)中滚动。

在使用 Spy++ 和 Procmon 一段时间后,我发现了一个有趣的注册表项,它解决了我的问题。此设置将在滚动时禁用自定义光标,从而有效地修复 GTK 应用程序中的滚动问题。

首先,您必须打开 regedit。导航到并创建一个名为 0 的
HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTPEnh
新 DWORD 。UseScrollCursor

重新启动 SynTPEh(或重新启动)。

滚动现在应该可以在 GTK 应用程序中工作,但您将不再看到滚动光标。

答案2

让我这样解释一下。触摸板本身完全没有滚动的概念。它感知触摸...并报告 X 和 Y。驱动程序获取该信息...并确定如何将其解释为各种鼠标手势。所以...简而言之...由驱动程序决定滚动到底是什么。所以这里的问题在于驱动程序...或驱动程序配置。由于您没有指定 Linux 的风格...您的结果可能会相当混乱。Synaptics 确实创建了一个套房适用于常见的 Linux 版本...但您需要获取它们...或者它是否适用于您的发行版...超出了我的能力范围。

答案3

我的 Synaptic 鼠标有一个捏合缩放选项,可以模拟滚轮滚动。查看“鼠标”>“设备设置”>“设置”。将两根手指放在鼠标垫上,然后将它们靠近或分开,鼠标就会向一个方向或另一个方向滚动。

相关内容