GNOME Bugzilla – Bug 480477
Laptop scroll pad doesn't scroll windows
Last modified: 2011-01-13 09:55:06 UTC
Please describe the problem: Using a Dell Inspiron 6400 with its synamptics touchpad in windows doesn't scroll GTK+ applications specifically pidgin (developers claim this is a GTK+ issue) Original pidgin bug report - http://developer.pidgin.im/ticket/2113 When trying to scroll a window using the side of the touch pad an icon appears showing the cursor dragging the scroll bar but the window doesn't actually scroll. Steps to reproduce: 1. Run GTK+ app in windows (pidgin) 2. Try to scroll a scrollable window using the laptop touchpad 3. Actual results: Window fails to scroll Expected results: Window should scroll Does this happen every time? yes Other information: Windows XP SP2 synamptics touchpad driver 8.2.4.6 (3/8/2006)
Should mention this is GTK 2.10.13 rev A that ships with pidgin 2.2.0
Also experiencing this issue with a Lenovo ThinkPad T61.
I can confirm this on an Dell Inspiron E1705. KatMouse can't fix it, either.
I am also experiencing this on an IBM/Lenovo T40 with the builtin synaptics (IBM UltraNav) pointer device. This deficiency is extremely frustrating. If someone can give me a hint as to why this might not be working, I can debug/code.
(In reply to comment #4) > I am also experiencing this on an IBM/Lenovo T40 with the builtin synaptics > (IBM UltraNav) pointer device. This deficiency is extremely frustrating. If > someone can give me a hint as to why this might not be working, I can > debug/code. > I forgot to mention: Windows 2000 SP4, GTK+ runtime 2.14.3.
Just for the record: my Sony Vaio with an "Alps" touch pad and XP is working fine. And for me no "icon appears showing the cursor dragging", if I recall correctly this is some superfluous extra software you need to switch off. After all this may be a configuration issue of your system, not a problem with the gtk sources.
This is almost certainly due to the synaptics hardware / driver. The first thing is to find if any native window messages are being sent when you try to scroll. Either run under a debugger or use --gdk-debug=EVENTS (I think) to get a verbose event log. I don't have synaptics hardware to replicate this here.
(In reply to comment #7) > This is almost certainly due to the synaptics hardware / driver. The first > thing is to find if any native window messages are being sent when you try to > scroll. Either run under a debugger or use --gdk-debug=EVENTS (I think) to get > a verbose event log. I don't have synaptics hardware to replicate this here. > Thanks John. I've been researching, and I think I understand what is going on here. I used Spy++ (from a MS Visual Studio .NET 2003 installation) to monitor Windows events sent to a process that worked with the Synaptics scroll features and found that the Synaptics driver sends WM_VSCROLL amd WM_HSCROLL messages in response to scroll events (As opposed to the more typical WM_MOUSEWHEEL message). When monitoring a GTK+ app (Pidgin), I discovered that the driver was not sending these messages at all. I searched for other occurrences of this problem and come across the following: http://blogs.msdn.com/markrideout/archive/2006/01/12/512359.aspx It seems that the Synaptic driver will only send scroll events to windows that have a child window with a class name of "ScrollBar". GTK+ creates its scroll bars with a class name of "gdkWindowChild". This design choice on the part of the Synaptics driver seems questionable, but I can only assume there is some legitimate reason for it (Perhaps to avoid inadvertently sending scroll messages to non-scrollable windows?). A workaround for this would be to create a hidden child window with class name "ScrollBar" that simply redirects the WM_VSCROLL and WM_HSCROLL messages. I'll try to prototype this, but would appreciate any hints, suggestions, or alternative implementation ideas.
I finally discovered that the Synaptic driver can be configured to send different types of messages depending on the class name of the target window. The file for configuring this is named 'tp4table.dat' (perhaps 'tp4scrol.dat' depending on the version of the driver). On my system, this file is installed in 'C:\Program Files\Synaptics\SynTP'. To determine the installation location, open 'Device Manager', right click on 'ThinkPad UltraNav Pointing Device', and select 'Properties'. Click on the 'Driver' tab and select 'Driver Details...' I added the following lines to my 'tp4table.dat' file: ; GTK+ *,*,*,gdkWindowTopLevel,*,gdkWindowChild,WheelStd,0,9 A reboot is required for the changes to take affect (or, you can terminate the 'SynTPEnh.exe' process in Task Manager and restart it from the installation location) Scrolling now works for me - most of the time anyway. Sometimes, I need to drag the scroll bar briefly before scrolling with the touchpad/trackpoint works correctly - I'm not sure why, seems to me likely to be a problem in Pidgin or GTK+ (I'm using GTK+ 2.12.6 - ancient, I know)
I tried out Tom's suggestion, unfortunately it did not help in my case. Im running Windows 7 64Bit on a Thinkpad x201. Scrolling does not work in several Applications, for instance Pidgin and Lyx. I would really be interested if someone had an idea to get the scrolling to work!
This is an duplicate of Bug 542777 Still i can confirm it on WinXP SP3 and GTK+ 2.16.6 As a workaround one can create a DWORD Key "UseScrollCursor" with a value of 0 in "HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTPEnh" as is explained on http://blog.alexou.net/2010/07/30/scrolling-in-gtk-apps-with-synaptics-driver/ While this will enable Scrolling in GTK Apps, it will always scroll the focused window and no longer the window below the cursor
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find. *** This bug has been marked as a duplicate of bug 542777 ***