Getting Synaptics trackpad to send actual scroll-wheel events

laptopscroll-wheelsynaptics-touchpad

I have a laptop (a Samsung Series 9) with a Synaptics trackpad, and I have Windows XP on it.

One of the nice features of this trackpad is that it allows you to scroll by placing two fingers on the trackpad and then dragging them up or down.

But the really annoying thing is this: Instead of acting like any other scroll wheel in existence and sending scroll wheel events to Windows, for some reason the Synaptics trackpad has special logic for scrolling. It changes the mouse cursor to a drawing of a scrollbar, and then scrolls the window itself using a seemingly proprietary mechanism.

The problem with that is that this scrolling doesn't work on all apps. For example, it doesn't work on GTK-based apps, which I use a lot.

I really have no idea why the Synaptics developers chose to reinvent wheel-scrolling, at the expense of their users…

Anyway, is there a way to make my trackpad send standard scrollwheel events, so it'll work in all apps?

Best Answer

From Scrolling in GTK+ apps with synaptics driver :

When using a Windows laptop, you might be stuck with a synaptic touchpad.

Those crappy drivers with their so-called virtual scrolling create a fake window below the cursor to display their custom scrolling icon.

That window interfere with the signal sent to the application under, and GTK for some reason can’t detect that (most likely the devs don’t care about us). The result is being unable to scroll in popular GTK apps like Wireshark or Pidgin.

After playing with Spy++ and Procmon for some time, I found an interesting registry key that solved my problem. This setting will disable the custom cursor when you scroll, effectively fixing the scrolling problem in GTK apps.

First you have to open regedit. Navigate to
HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTPEnh
and create a new DWORD called UseScrollCursor with a value of 0.

Restart SynTPEh (or reboot).

Scrolling should work in GTK apps now, but you won’t see the scrolling cursor anymore.