]> git.eshelyaron.com Git - emacs.git/commitdiff
In make_lispy_position fix Bug#50993 in rudimentary fashion
authorMartin Rudalics <rudalics@gmx.at>
Thu, 14 Oct 2021 08:39:27 +0000 (10:39 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Thu, 14 Oct 2021 08:39:27 +0000 (10:39 +0200)
* src/keyboard.c (make_lispy_position): Do not set posn to
tool- or tab-bar when track_mouse is enabled (Bug#50993).

src/keyboard.c

index 4e47136e490e3863ba0b07126c50c5322681159b..6895a249f22bce3924c805e3fd47e5ec707fcd25 100644 (file)
@@ -5122,7 +5122,20 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
 #endif
       )
     {
-      posn = EQ (window_or_frame, f->tab_bar_window) ? Qtab_bar : Qtool_bar;
+      /* FIXME: While track_mouse is non-nil, we do not report this
+        event as something that happened on the tool or tab bar since
+        that would break mouse dragging operations that originate from
+        an ordinary window beneath and expect the window to auto-scroll
+        as soon as the mouse cursor appears above or beneath it
+        (Bug#50993).  Since this "fix" might break track_mouse based
+        operations originating from the tool or tab bar itself, such
+        operations should set track_mouse to some special value that
+        would be recognized by the following check.
+
+        This issue should be properly handled by 'mouse-drag-track' and
+        friends, so the below is only a temporary workaround.  */
+      if (NILP (track_mouse))
+       posn = EQ (window_or_frame, f->tab_bar_window) ? Qtab_bar : Qtool_bar;
       /* Kludge alert: for mouse events on the tab bar and tool bar,
         keyboard.c wants the frame, not the special-purpose window
         we use to display those, and it wants frame-relative