https://bugs.winehq.org/show_bug.cgi?id=49786
Bug ID: 49786 Summary: Horizontal scrolling stopped working - regression in 5.8/5.9+ Product: Wine Version: 5.15 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: mszpak@wp.pl Distribution: ---
Upgrading from Wine 5.7 to 5.9 (or 5.8*), I've noticed that horizontal scrolling [1] using a mouse wheel stopped working (pressing the regular mouse wheel left or right). I've been working fine since I remember. The issue occurs also with the latest version available for Fedora 32 - 5.15.
* - I haven't checked with 5.8 as there are no RPMs for Fedora available.
There are some games (e.g. the new XCOM [2] series) where horizontal scrolling is heavily used. It would be good to have it back working.
I don't know any freely available program what can be used to test that problem. However, probably everything that is able to show what mouse button was used should be able to verify that.
[1] - https://docs.microsoft.com/en-us/windows/win32/controls/wm-hscroll [2] - https://en.wikipedia.org/wiki/XCOM_2
https://bugs.winehq.org/show_bug.cgi?id=49786
Marcin Zajaczkowski mszpak@wp.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |user32
--- Comment #1 from Marcin Zajaczkowski mszpak@wp.pl --- Switching component to user32 which should care for event (but please correct it if needed).
https://bugs.winehq.org/show_bug.cgi?id=49786
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #2 from joaopa jeremielapuree@yahoo.fr --- Please, run a regression test: https://wiki.winehq.org/Regression_Testing
https://bugs.winehq.org/show_bug.cgi?id=49786
--- Comment #3 from Marcin Zajaczkowski mszpak@wp.pl ---
Please, run a regression test:
It is definitely a good idea, but Wine is a quite big project (which building takes time) and I would leave it as the last resort to bisect it.
I will try to test it with 5.8 to limit number of options, but maybe some of the developers could suggest a suspected, related commit(s)?
Testing 661 commits [1], even with 0(log n) complexity of bisect, would take "some time", looking at the Wine building time.
[1] - https://github.com/wine-mirror/wine/compare/wine-5.7...wine-5.9
https://bugs.winehq.org/show_bug.cgi?id=49786
Marcin Zajaczkowski mszpak@wp.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |muzerakascooby@gmail.com
--- Comment #4 from Marcin Zajaczkowski mszpak@wp.pl --- Good ideas come always just after clicking the submit button :)
The only commit which name refers to scrolling is:
winex11.drv: Interpret mouse 6/7 as horiz scroll.
https://github.com/wine-mirror/wine/commit/893080e4df5a45929320ebb88b8668eea...
with related bug 49142.
@MurrayColpman Could your change for the browser accidentally cause Mouse Button 4 and 5 to stop working in the game (X-COM 2)?
https://bugs.winehq.org/show_bug.cgi?id=49786
--- Comment #5 from Marcin Zajaczkowski mszpak@wp.pl ---
Mouse Button 4 and 5
4 and 5 looking at the manual for the game [1]. However, in my (quite old) Logitech M305 [2], when examining with xev on Linux, it is definitely button 6 and 7 when I click the scroller left and right (that mouse doesn't have a separate horizontal scroller). 4 and 5 are generated when I scroll up and down (and in game are used for something else).
I wonder if there could be conflict in mapping between Linux and Windows?
Btw, looking at the diff [3]:
static const UINT button_down_data[NB_BUTTONS] = { 0, 0, 0, WHEEL_DELTA, -WHEEL_DELTA, -WHEEL_DELTA, WHEEL_DELTA, XBUTTON1, XBUTTON2 };
I wonder, why WHEEL_DELTA is used twice? Isn't there anything like HWHEEL_DELTA for horizontal scrolling?
[1] - https://www.2k.com/manual/xcom2/collection/ [2] - https://www.amazon.com/Logitech-M305-Wireless-Mouse-Silver/dp/B002Y6CJJ8 (I wasn't able to find it on the Logitech site) [3] - https://github.com/wine-mirror/wine/commit/893080e4df5a45929320ebb88b8668eea...
https://bugs.winehq.org/show_bug.cgi?id=49786
--- Comment #6 from Murray Colpman muzerakascooby@gmail.com --- Before my change, horizontally scrolling actually generated Mouse Button X1/X2 events, which are usually used for browser back/forward buttons, rather than horizontal scrolling. After my change horizontally scrolling now generates proper horizontal scroll events, just like the input drivers for other systems (eg Mac). When I tested an old version of Firefox which I could get running in wine, the horizontal scrolling worked after my change and did not work before it.
Did you perhaps manually change the controls mapping ingame before the change, which now since the change has led to them not working? Have you tried simply remapping using the game's own settings? Or does it not let you do that?
https://bugs.winehq.org/show_bug.cgi?id=49786
Vladimir Panteleev wine@thecybershadow.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wine@thecybershadow.net
https://bugs.winehq.org/show_bug.cgi?id=49786
--- Comment #7 from Marcin Zajaczkowski mszpak@wp.pl --- Good idea with the rebinding. It was months ago, so I checked that those keys aren't defined at all - they seem to work (up to 5.7) out of the box. I tried to remap it, however, XCOM 2 and with 5.7 "Thumb Mouse Button 1/2" is recognized (which is bad in general, but was working in that game) - back/forward buttons. With 5.9 those keys are no longer detected at all.
As the horizontal scrolling worked fine in Firefox when you tested it, I would suspect that XCOM 2 is not able to properly recognize horizontal scrolling. As a result, I'm willing to closing this issue. Sorry for bothering you, Murray and thanks for your explanations.
Two more extra things: 1. Do you know any way to display (for debug purpose, live with xev) pressed keys in Wine? I tried with some popular Windows app, but they didn't want to run (or didn't work) - probably due to using some low level Windows mechanisms. 2. Is it possible to remap keys globally in Wine?
https://bugs.winehq.org/show_bug.cgi?id=49786
--- Comment #8 from Murray Colpman muzerakascooby@gmail.com --- Incidentally I'd be interested to find out if horizontal scrolling works out-of-the-box in modern versions of Windows in this game! It's possible that there's some "compatibility" horizontal scrolling events which we should be generating but aren't, because I believe horizontal scrolling was only supported properly in Windows since Vista (and given I had a horizontally scrolling mouse with XP I don't know how it worked before the official support was introduced...).
https://bugs.winehq.org/show_bug.cgi?id=49786
--- Comment #9 from Murray Colpman muzerakascooby@gmail.com --- (And i'm afraid I don't know the answer to either of your two questions)
https://bugs.winehq.org/show_bug.cgi?id=49786
Marcin Zajaczkowski mszpak@wp.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |NOTOURBUG
--- Comment #10 from Marcin Zajaczkowski mszpak@wp.pl --- I tested vertical scrolling in Wine 5.15 with the latest notepad++ and it worked as expected. With 5.7 it didn't.
While there still could be some glitches with some games, I would assume that the problem lies elsewhere. Thanks for your fix :).