Subject: bug#57995: <wheel-right> with pixel-scroll-precision-mode

From: Po Lu <[email-masked]>
Date: Mon, 07 Nov 2022 17:57:19 +0800

Tak Kunihiro <[email-masked]> writes:

> I set a break point to line 7363 and run Emacs.  Event <wheel-left>
> stops at line 7373.  I'm not familiar with neither lldb and gdb.  Please
> tell me the next step specifically.
>
> TIA
>
> $ ./configure CFLAGS="-g -O0"
> $ make
> $ make install
> $ lldb nextstep/Emacs.app/Contents/MacOS/Emacs
> (lldb) br set --file src/nsterm.m --line 7363
> (lldb) run -Q
> M-: (setq mouse-wheel-tilt-scroll t)
> M-: (pixel-scroll-precision-mode 1)
> <wheel-right>
> (lldb)
> * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
>     frame #0: 0x000000010031f749 Emacs`-[EmacsView mouseDown:](self=0x0000000103023790, _cmd="mouseDown:", theEvent=0x0000600003706b80) at nsterm.m:7373:5
>    7350 #if defined (NS_IMPL_GNUSTEP) || MAC_OS_X_VERSION_MIN_REQUIRED < 1070
>    7351        {
>    7352          CGFloat delta = [theEvent deltaY];
>    7353          /* Mac notebooks send wheel events with delta equal to 0
>    7354	     when trackpad scrolling.  */
>    7355          if (delta == 0)
>    7356            {
>    7357              delta = [theEvent deltaX];
>    7358              if (delta == 0)
>    7359                {
>    7360                  NSTRACE_MSG ("deltaIsZero");
>    7361                  return;
>    7362                }
>    7363              emacs_event->kind = HORIZ_WHEEL_EVENT;
>    7364            }
>    7365          else
>    7366            emacs_event->kind = WHEEL_EVENT;
>    7367
>    7368          emacs_event->code = 0;
>    7369          emacs_event->modifiers = EV_MODIFIERS (theEvent) |
>    7370             ((delta > 0) ? up_modifier : down_modifier);
>    7371         }
>    7372 #endif
> -> 7373     }
>    7374   else
>    7375     {
>    7376       Lisp_Object tab_bar_arg = Qnil;
> Target 0: (Emacs) stopped.

Thanks.  I just realized that the code I asked you to break on is not
defined on your system.

Would you please print out the values of the following variables
instead?

  (lldb) p horizontal
  (lldb) p emacs_event->kind
  (lldb) p totalDeltaX