Subject: Re: bug#35389: 27.0.50; [PATCH] Emacs on macOS sets mouse-wheel variables directly

From: Eli Zaretskii <[email-masked]>
Date: Sun, 12 May 2019 07:58:50 +0300

> Date: Sat, 11 May 2019 23:50:21 +0100
> From: Alan Third <[email-masked]>
> Cc: Robert Pluim <[email-masked]>, [email-masked],
> 	[email-masked]
> 
> > > (5 ((shift) . 1) ((control) . nil)))
> > > 
> > > to
> > > 
> > > (1 ((shift) . 5) ((control)))
> > 
> > What is the logic behind the value proposed for macOS 10.7, though?
> > It sounds like Shift will _increase_ the scrolling amount instead of
> > decreasing it in the default value?  What is the reason for such
> > reversal?
> 
> I can’t recall... I think it was just something somebody provided as
> an option and nobody disagreed.
> 
> Some of the previous discussion is available here:
> 
> http://emacs.1067599.n8.nabble.com/Smoother-macOS-touchpad-scrolling-td435666.html

I don't see the above discrepancy discussed anywhere, nor any
justification for switching Shift from causing slower scrolling to
causing faster scrolling.  Did I miss something?

What I see is 2 kinds of arguments:

  . Acceleration applied by Emacs makes scrolling too fast because
    macOS itself accelerates by default

  . The default amount of scrolling -- 5 -- is too large for macOS
    (not sure why -- is that also due to macOS defaults?)

The first of these could be handled by turning acceleration off on
macOS 10.7 by default.  Maybe the same with the latter.  Although I
don't understand why the system's default scrolling should matter,
because AFAIK Emacs scrolls by its own commands, it doesn't use the
system for that.

Why Shift should _accelerate_ on macOS was never discussed, in any of
the linked discussions or the links inside them (stack-overflow etc.)

I understand now that this ship has sailed with Emacs 26, which I
regret, because I think it was a serious mistake to make at least part
of those changes.  Maybe we should try fixing that in future versions.

There's also the issue with trackball that differs from a real mouse
wheel.  I don't think I understand why it's an Emacs problem; do other
apps somehow distinguish between the trackball and the mouse and
produce a different behavior?  If so, why cannot Emacs distinguish
between them?

There was also a question in the 2017 discussion regarding how to know
we are near the top or bottom of the buffer.  is that still an issue?
Maybe I don't understand the problem, because the answer is trivial,
we have 2 macros that provide the limits of the buffer's accessible
portion, and another macro that provides the value of point.  If you
need the position of the window-start, that is also readily available.

Bottom line, I'd like to change Shift back to cause slow-down of the
scrolling, as on other platforms.  Maybe also change the default
itself back, and just make the acceleration off on macOS 10.7.