unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
@ 2022-01-19  1:02 Mark Kennedy
  2022-01-19  1:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Mark Kennedy @ 2022-01-19  1:02 UTC (permalink / raw)
  To: 53353


This bug occurs in LSP clients (observed for both scala and python) with
many minor modes in effect.  Not feasible to reproduce from -Q.  Mouse motion in
the tab bar (over both a tab name or the white space between them)
generates unwanted "<tab-bar> <mouse-motion>" input events (which are
unbound).  Eli, if this isn't sufficient info, feel free to point me at
where to start looking again.  Thanks.


In GNU Emacs 29.0.50 (build 43, x86_64-pc-linux-gnu, GTK+ Version 3.24.31, cairo version 1.17.4)
 of 2022-01-17 built on x1.mofjwutu.com
Repository revision: 2dad332a1439b59a62cd5ed0d8e3626d9e91e3e5
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 35 (Workstation Edition)

Configured using:
 'configure --with-native-compilation'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER
PNG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE
XIM XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Scala

Minor modes in effect:
  shell-dirtrack-mode: t
  lsp-headerline-breadcrumb-mode: t
  lsp-diagnostics-mode: t
  lsp-modeline-workspace-status-mode: t
  lsp-modeline-diagnostics-mode: t
  lsp-modeline-code-actions-mode: t
  lsp-completion-mode: t
  indent-guide-mode: t
  subword-mode: t
  save-place-mode: t
  desktop-save-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  beacon-mode: t
  pcre-mode: t
  dynamic-completion-mode: t
  msb-mode: t
  winner-mode: t
  savehist-mode: t
  which-function-mode: t
  global-page-break-lines-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  icomplete-mode: t
  dap-tooltip-mode: t
  dap-ui-many-windows-mode: t
  dap-ui-controls-mode: t
  dap-ui-mode: t
  auto-revert-mode: t
  lsp-ui-mode: t
  lsp-ui-doc-mode: t
  lsp-ui-sideline-mode: t
  company-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  lsp-lens-mode: t
  dap-auto-configure-mode: t
  dap-mode: t
  lsp-managed-mode: t
  lsp-mode: t
  yas-minor-mode: t
  flycheck-mode: t
  override-global-mode: t
  hl-todo-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  tab-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/mtk/.emacs.d/elpa/transient-20220117.1122/transient hides /usr/local/share/emacs/29.0.50/lisp/transient

Features:
(shadow emacsbug names edebug autoload rfc2104 magit-utils crm jka-compr
novice mailalias sort mail-extr smtpmail sendmail cus-start python
tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat shell pcomplete parse-time iso8601 ls-lisp format-spec teco
cl-print debug backtrace shortdoc help-fns radix-tree bs hippie-exp
misearch multi-isearch add-log mm-archive message yank-media rfc822 mml
mml-sec epa derived gnus-util mailabbrev gmm-utils mm-decode mm-bodies
mm-encode lsp-headerline lsp-icons vc bug-reference dired-aux dired
dired-loaddefs url-http url-gw url-cache url-auth mule-util time-date
lsp-diagnostics lsp-modeline vc-git diff-mode vc-dispatcher
company-oddmuse company-keywords company-etags etags fileloop generator
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-capf company-cmake company-semantic
company-template company-bbdb lsp-zig lsp-steep lsp-svelte lsp-sqls
lsp-yaml lsp-xml lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog
lsp-vala lsp-v lsp-toml lsp-terraform lsp-tex lsp-sorbet lsp-solargraph
lsp-rust lsp-rf lsp-r lsp-purescript lsp-pylsp lsp-pyls lsp-pwsh lsp-php
lsp-perl lsp-ocaml lsp-nix lsp-nim lsp-nginx lsp-markdown lsp-lua
lsp-kotlin lsp-json lsp-javascript lsp-haxe lsp-groovy lsp-hack
lsp-graphql lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran
lsp-eslint lsp-erlang lsp-elixir lsp-elm lsp-dockerfile lsp-dhall lsp-d
lsp-css lsp-csharp gnutls lsp-crystal lsp-cmake lsp-clojure
lsp-semantic-tokens lsp-clangd dom lsp-beancount lsp-bash lsp-angular
lsp-ada lsp-actionscript ccls ccls-member-hierarchy
ccls-inheritance-hierarchy ccls-call-hierarchy ccls-tree ccls-code-lens
ccls-semantic-highlight ccls-common scala-mode
scala-mode-prettify-symbols scala-mode-imenu scala-mode-map
scala-mode-fontlock scala-mode-indent scala-mode-paragraph
scala-mode-syntax scala-mode-lib disp-table indent-guide hlinum linum
cap-words superword subword saveplace desktop frameset
display-line-numbers beacon pcre2el rxt re-builder completion msb winner
savehist which-func page-break-lines hi-lock avoid icomplete server
lsp-pyright dap-mouse dap-ui gdb-mi gud bui bui-list bui-info bui-entry
bui-core bui-history bui-button bui-utils cus-edit pp cus-load dap-java
lsp-java request mailheader autorevert mail-utils cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
lsp-ui lsp-ui-flycheck lsp-ui-doc goto-addr lsp-ui-imenu lsp-ui-peek
lsp-ui-sideline lsp-ui-util face-remap company hydra flycheck-package
package-lint let-alist finder finder-inf projectile lisp-mnt mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr grep ibuf-ext
ibuffer ibuffer-loaddefs lsp-metals view lsp-metals-treeview
lsp-treemacs lsp-treemacs-themes treemacs treemacs-header-line
treemacs-compatibility treemacs-mode treemacs-interface
treemacs-extensions treemacs-mouse-interface treemacs-tags
treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode
treemacs-rendering treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-scope pulse
treemacs-faces treemacs-icons treemacs-themes treemacs-core-utils
pfuture hl-line treemacs-logging treemacs-customization treemacs-macros
lsp-metals-protocol lsp-lens dap-mode dap-launch posframe dap-overlays
which-key lsp-mode lsp-protocol aws-snippets go-snippets
yasnippet-snippets yasnippet xref project tree-widget wid-edit spinner
pcase network-stream puny nsm rmc markdown-mode color thingatpt noutline
outline lv inline imenu ht filenotify ewoc epg rfc6068 epg-config
compile text-property-search comint ring flycheck-eldev flycheck
ansi-color find-func use-package-bind-key bind-key easy-mmode
importmagic f dash s epc ctable edmacro kmacro concurrent deferred
hl-todo use-package-ensure ialign align use-package-core tab-line comp
comp-cstr cl-extra help-mode trim page-menu cperl-mode facemenu warnings
rx cl advice info package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json map url-vars seq gv subr-x
byte-opt bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget keymap hashtable-print-readable backquote threads
dbusbind inotify dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 2213757 1808274)
 (symbols 48 70393 1138)
 (strings 32 431706 277233)
 (string-bytes 1 17004484)
 (vectors 16 240645)
 (vector-slots 8 4030196 877167)
 (floats 8 934 7751)
 (intervals 56 216050 127208)
 (buffers 992 61))





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
  2022-01-19  1:02 bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar Mark Kennedy
@ 2022-01-19  1:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-01-19  1:56   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-01-19  1:52 UTC (permalink / raw)
  To: Mark Kennedy; +Cc: 53353

Mark Kennedy <mark.t.kennedy@gmail.com> writes:

> This bug occurs in LSP clients (observed for both scala and python) with
> many minor modes in effect.  Not feasible to reproduce from -Q.  Mouse motion in
> the tab bar (over both a tab name or the white space between them)
> generates unwanted "<tab-bar> <mouse-motion>" input events (which are
> unbound).

What is the value of `track-mouse' when the bug occurs?  Thanks.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
  2022-01-19  1:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-01-19  1:56   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-01-19  7:52     ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-01-19  1:56 UTC (permalink / raw)
  To: Mark Kennedy; +Cc: Eli Zaretskii, 53353

Po Lu <luangruo@yahoo.com> writes:

> What is the value of `track-mouse' when the bug occurs?  Thanks.

I can reproduce this problem by setting `track-mouse' to t.  IMO, the
best solution would probably be to bind <tab-bar> <mouse-movement> to
`ignore', like we do with the rest of the mouse movement events.

Eli, WDYT?

Thanks in advance.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
  2022-01-19  1:56   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-01-19  7:52     ` Eli Zaretskii
  2022-01-19  9:31       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2022-01-19  7:52 UTC (permalink / raw)
  To: Po Lu; +Cc: mark.t.kennedy, 53353

> From: Po Lu <luangruo@yahoo.com>
> Cc: 53353@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
> Date: Wed, 19 Jan 2022 09:56:09 +0800
> 
> Po Lu <luangruo@yahoo.com> writes:
> 
> > What is the value of `track-mouse' when the bug occurs?  Thanks.
> 
> I can reproduce this problem by setting `track-mouse' to t.  IMO, the
> best solution would probably be to bind <tab-bar> <mouse-movement> to
> `ignore', like we do with the rest of the mouse movement events.
> 
> Eli, WDYT?

I'm not sure I understand: bind to 'ignore' where?

The usual protocol is that Lisp programs that enable mouse tracking
are those that bind mouse-movement events to 'ignore' as they see
fit.  If that is what you propose, then it follows that LSP should do
that if it doesn't want to support mouse-movement on the tab bar.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
  2022-01-19  7:52     ` Eli Zaretskii
@ 2022-01-19  9:31       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-01-19 11:37         ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-01-19  9:31 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 53353, mark.t.kennedy

Eli Zaretskii <eliz@gnu.org> writes:

> The usual protocol is that Lisp programs that enable mouse tracking
> are those that bind mouse-movement events to 'ignore' as they see
> fit.  If that is what you propose, then it follows that LSP should do
> that if it doesn't want to support mouse-movement on the tab bar.

bindings.el binds mouse-movement events to `ignore', so I think the same
should be done with the tab bar (and tool bar) mouse-movement events.

But either way, this is probably not a bug in Emacs.  Mark, can you
verify whether or not `track-mouse' is not nil when those spurious
events are generated?  Thanks.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
  2022-01-19  9:31       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-01-19 11:37         ` Eli Zaretskii
  2022-01-19 11:54           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2022-01-19 11:37 UTC (permalink / raw)
  To: Po Lu; +Cc: mark.t.kennedy, 53353

> From: Po Lu <luangruo@yahoo.com>
> Cc: mark.t.kennedy@gmail.com,  53353@debbugs.gnu.org
> Date: Wed, 19 Jan 2022 17:31:07 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > The usual protocol is that Lisp programs that enable mouse tracking
> > are those that bind mouse-movement events to 'ignore' as they see
> > fit.  If that is what you propose, then it follows that LSP should do
> > that if it doesn't want to support mouse-movement on the tab bar.
> 
> bindings.el binds mouse-movement events to `ignore'

That's only for the text area, not for the other elements of the Emacs
display.

> so I think the same should be done with the tab bar (and tool bar)
> mouse-movement events.

And scroll bar, and mode-line, and header-line, and tab-line,
etc. etc.  Where does all this end?

The global binding of mouse-movement in bindings.el is very old, and I
have no idea what were the reasons for it.  But we don't do anything
like that for any other mouse-movement gesture, so I don't think I
agree we should do it now.  If LSP doesn't want these events, it
should bind them to 'ignore' inside the track-mouse forms.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
  2022-01-19 11:37         ` Eli Zaretskii
@ 2022-01-19 11:54           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]             ` <CANru7VFRPt_To+v6PYCBBRbXVSQaXVWJsf-EK6WxPTXJvQuuiQ@mail.gmail.com>
  0 siblings, 1 reply; 8+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-01-19 11:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 53353, mark.t.kennedy

Eli Zaretskii <eliz@gnu.org> writes:

> The global binding of mouse-movement in bindings.el is very old, and I
> have no idea what were the reasons for it.  But we don't do anything
> like that for any other mouse-movement gesture, so I don't think I
> agree we should do it now.  If LSP doesn't want these events, it
> should bind them to 'ignore' inside the track-mouse forms.

That's reasonable, thanks.

I'll close this bug if Mark confirms that it's not Emacs who is setting
track-mouse to t.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar
       [not found]             ` <CANru7VFRPt_To+v6PYCBBRbXVSQaXVWJsf-EK6WxPTXJvQuuiQ@mail.gmail.com>
@ 2022-01-20  0:58               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 8+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-01-20  0:58 UTC (permalink / raw)
  To: Mark Kennedy; +Cc: 53353-done


(Please use "Reply All" to reply to bug reports, because otherwise your
messages don't reach the bug tracker.)

Mark Kennedy <mark.t.kennedy@gmail.com> writes:

> it is not emacs that is setting track-mouse to t.  so please close my
> erroneous report.  binding "<tab-bar> <mouse-movement>" to ignore
> works around the problem.  i had tried this before i submitted the bug
> report but did not use keymap-local-set so thought it didn't work.

Thanks, I'm closing this bug.

> how do you change the value of a buffer-local variable once it has
> been set?  (this is just curiosity on my part since i wasn't able to
> do it).

You just `setq' inside the buffer.





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-01-20  0:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-19  1:02 bug#53353: 29.0.50; spurious <tab-bar> <mouse-movement> events generated by mouse motion in tab-bar Mark Kennedy
2022-01-19  1:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-19  1:56   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-19  7:52     ` Eli Zaretskii
2022-01-19  9:31       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-19 11:37         ` Eli Zaretskii
2022-01-19 11:54           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]             ` <CANru7VFRPt_To+v6PYCBBRbXVSQaXVWJsf-EK6WxPTXJvQuuiQ@mail.gmail.com>
2022-01-20  0:58               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).