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

Reply via email to