Created attachment 8915954 Bug 143038 Make users can scroll contents horizontally with vertical wheel operation with a modifier
This patch declares a new pref, "mousewheel.modifier_to_treat_vertical_wheel_as_horizontal_scroll", this takes a keycode of modifier keys as its value. The default value is 16 (NS_VK_SHIFT) on Windows, Linux and Android and 0 (meaning disabled) on macOS. The reason why this new feature is disabled on macOS is, if user turns vertical wheel of mice with Shift key, macOS notifies us of horizontal scroll events. So, we don't need to care this feature by ourselves on macOS. If a modifier keycode is specified to the pref as expected, EventStateManager and EventStateManager::WheelPrefs treats vertical wheel operation as horizontal scroll when coming wheel event without the modifier causes scroll. In such case, EventStateManager::WheelPrefs::NeedToTreatAsHorizontalScroll() returns true. Otherwise, false. If this returns true, default action handler of wheel events such as EventStateManager::PostHandleEvent() and IAPZCTreeManager::ReceiveInputEvent() swaps deltaX values and deltaY values of coming wheel event temporarily and restore them. AutoTemporarilyWheelDeltaSwapper in WheelHandlingHelper guarantees this restoring. So, this patch does NOT change any wheel event information on web apps. Only changes its default action. This is same behavior as Chromium. Note that with this patch, users cannot navigate the tab's history with Shift + vertical-wheel in the default settings. However, I guess that the usage of this feature is less than the number of users who wants to scroll contents horizontally with vertical mouse wheel. Of course, Shift + horizontal-wheel is available for navigating tab's history even after this change. Review commit: https://reviewboard.mozilla.org/r/186794/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/186794/ -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to firefox in Ubuntu. https://bugs.launchpad.net/bugs/1228250 Title: [Shift + Mouse-Scroll-Wheel] Does NOT Scroll Horizontally Status in Mozilla Firefox: Fix Released Status in firefox package in Ubuntu: Fix Released Bug description: In Chromium, I can scroll horizontally using my mouse-wheel by holding down the shift key while scrolling the mouse wheel. Firefox is missing this very convenient page-navigation short-cut. Use Case: As my eyes age, I find myself always scaling up the web pages I read (by holding down crtl and scrolling my mouse wheel). Doing this, often makes the page exceed the width of my monitor (hiding the right-side of the text I want to read) and produces a horizontal scroll bar at the bottom of the page. At this point, since I've already used ctrl-scroll-mouse-wheel to magnify the page, it would be wonderful if I could use shift-scroll- mouse-wheel to horizontally-scroll the magnified page and therefore center the (previously cropped) text that I am wanting to read. ProblemType: Bug DistroRelease: Ubuntu 13.04 Package: firefox 24.0+build1-0ubuntu0.13.04.1 ProcVersionSignature: Ubuntu 3.8.0-30.44-generic 3.8.13.6 Uname: Linux 3.8.0-30-generic x86_64 NonfreeKernelModules: wl AddonCompatCheckDisabled: False ApportVersion: 2.9.2-0ubuntu8.3 Architecture: amd64 AudioDevicesInUse: USER PID ACCESS COMMAND /dev/snd/controlC0: lonnie 2161 F.... pulseaudio /dev/snd/pcmC0D0p: lonnie 2161 F...m pulseaudio BrokenPermissions: sessionstore.bak (0o600, wrong owner) BuildID: 20130911155223 Channel: Unavailable Date: Fri Sep 20 11:02:07 2013 ForcedLayersAccel: False IfupdownConfig: # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback InstallationDate: Installed on 2013-09-06 (14 days ago) InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424) IpRoute: default via 192.168.24.1 dev eth0 proto static 192.168.24.0/24 dev eth0 proto kernel scope link src 192.168.24.198 metric 1 MarkForUpload: True PrefSources: prefs.js [Profile]/extensions/{b9db16a4-6edc-47ec-a1f4-b86292ed211d}/defaults/preferences/prefs-dwhelper.js ProcEnviron: TERM=xterm PATH=(custom, no user) XDG_RUNTIME_DIR=<set> LANG=en_US.UTF-8 SHELL=/bin/bash Profiles: Profile0 (Default) - LastVersion=24.0/20130911155223 (In use) RelatedPackageVersions: google-talkplugin 4.5.3.0-1 icedtea-7-plugin 1.3.2-1ubuntu1.1 totem-mozilla 3.6.3-0ubuntu6 rhythmbox-mozilla 2.98-0ubuntu5 RunningIncompatibleAddons: False SourcePackage: firefox UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 04/14/2011 dmi.bios.vendor: Dell Inc. dmi.bios.version: A09 dmi.board.name: 0P792H dmi.board.vendor: Dell Inc. dmi.board.version: A09 dmi.chassis.type: 8 dmi.chassis.vendor: Dell Inc. dmi.chassis.version: A09 dmi.modalias: dmi:bvnDellInc.:bvrA09:bd04/14/2011:svnDellInc.:pnStudio1737:pvrA09:rvnDellInc.:rn0P792H:rvrA09:cvnDellInc.:ct8:cvrA09: dmi.product.name: Studio 1737 dmi.product.version: A09 dmi.sys.vendor: Dell Inc. To manage notifications about this bug go to: https://bugs.launchpad.net/firefox/+bug/1228250/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp

