unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
@ 2018-05-22  5:23 Aaron Jensen
  2018-05-22  7:25 ` martin rudalics
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-22  5:23 UTC (permalink / raw)
  To: 31546


Eval this in `emacs -Q' on macOS (maybe on other OSes?)

(progn
  (let ((buffer (get-buffer " *foo*")))
    (when (buffer-live-p buffer)
      (kill-buffer buffer)))
  (let ((buffer (get-buffer-create " *foo*"))
        (after-make-frame-functions nil))
    (with-current-buffer buffer
      (goto-char (point-min))
      (insert "1 This is a test\n2 This is a test\n3 This is a test")
      (delete-region (point) (point-max))

      (setq-local mode-line-format nil)
      (setq-local repro-frame
                  (make-frame
                   `((parent-frame . ,(window-frame))
                     (minibuffer . nil)
                     (no-accept-focus t)
                     (desktop-dont-save . t))))
      (let ((win (frame-root-window repro-frame)))
        (set-window-buffer win buffer)))))

Then click where the modeline would be, you'll see the mouse cursor turn
to a finger pointer when it's in the right spot. If you click then the
buffer will shift up one line and there will be no way to get it back.
Click again and it'll shift up again.

I originally reported this on company-childframe[1] because I was
experiencing it there, but it appears to be reproducible on its own as
above.

[1]: https://github.com/tumashu/company-childframe/issues/19#issuecomment-390108157


In GNU Emacs 27.0.50 (build 1, x86_64-apple-darwin17.5.0, NS appkit-1561.40 Version 10.13.4 (Build 17E199))
 of 2018-04-24 built on aaron-mbt.local
Repository revision: ca5713deffde3e4b3126e60e75c169af824365ec
Windowing system distributor 'Apple', version 10.3.1561
System Description:  Mac OS X 10.13.4

Recent messages:
Saving file /Users/aaronjensen/Source/temp/posframe-issue-repro.el...
Wrote /Users/aaronjensen/Source/temp/posframe-issue-repro.el
g c
nil
g ESC is undefined
nil
Saving file /Users/aaronjensen/Source/temp/posframe-issue-repro.el...
Wrote /Users/aaronjensen/Source/temp/posframe-issue-repro.el
Quit
nil

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus/HEAD-ca5713d --with-xml2
 --without-dbus --with-gnutls --with-imagemagick --with-modules
 --with-rsvg --with-ns --disable-ns-self-contained'

Configured features:
RSVG IMAGEMAGICK NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS
MODULES THREADS

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  auto-compile-mode: t
  elisp-slime-nav-mode: t
  eros-mode: t
  lispyville-mode: t
  lispy-mode: t
  nameless-mode: t
  global-magit-file-mode: t
  magit-auto-revert-mode: t
  company-childframe-mode: t
  goto-address-prog-mode: t
  bug-reference-prog-mode: t
  auto-highlight-symbol-mode: t
  dtrt-indent-mode: t
  highlight-numbers-mode: t
  highlight-parentheses-mode: t
  rainbow-delimiters-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  auto-dim-other-buffers-mode: t
  global-git-gutter+-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  recentf-mode: t
  desktop-save-mode: t
  global-wakatime-mode: t
  wakatime-mode: t
  evil-mc-mode: t
  hl-todo-mode: t
  company-statistics-mode: t
  company-mode: t
  global-spacemacs-whitespace-cleanup-mode: t
  spacemacs-whitespace-cleanup-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  winum-mode: t
  winner-mode: t
  pupo-mode: t
  purpose-mode: t
  volatile-highlights-mode: t
  global-vi-tilde-fringe-mode: t
  vi-tilde-fringe-mode: t
  save-place-mode: t
  savehist-mode: t
  projectile-rails-global-mode: t
  projectile-mode: t
  persp-mode: t
  global-origami-mode: t
  origami-mode: t
  Info-breadcrumbs-in-mode-line-mode: t
  flycheck-pos-tip-mode: t
  global-flycheck-mode: t
  flx-ido-mode: t
  eyebrowse-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  global-evil-search-highlight-persist: t
  evil-search-highlight-persist: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  evil-lion-mode: t
  evil-escape-mode: t
  global-anzu-mode: t
  anzu-mode: t
  eval-sexp-fu-flash-mode: t
  editorconfig-mode: t
  diff-auto-refine-mode: t
  counsel-mode: t
  ivy-mode: t
  delete-selection-mode: t
  clean-aindent-mode: t
  hybrid-mode: t
  which-key-mode: t
  override-global-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  evil-mode: t
  evil-local-mode: t
  spacemacs-leader-override-mode: t
  global-spacemacs-leader-override-mode: t
  global-hl-line-mode: t
  xterm-mouse-mode: t
  global-auto-revert-mode: t
  shell-dirtrack-mode: t
  ido-vertical-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t
  hs-minor-mode: t

Load-path shadows:
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/ht-20180129.1434/ht hides /Users/aaronjensen/.emacs.d/core/libs/ht
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/inf-ruby-20180309.433/inf-ruby hides /usr/local/share/emacs/site-lisp/ruby/inf-ruby
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-stan hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-stan
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-exp hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-exp
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-J hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-J
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-eshell hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-eshell
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-emacs-lisp hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-emacs-lisp
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-gnus hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-gnus
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-css hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-css
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-lob hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-lob
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-forth hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-forth
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-macs hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-macs
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-version hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-version
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-scheme hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-scheme
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-abc hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-abc
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-C hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-C
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-capture hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-capture
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-ref hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-ref
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-clojure hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-clojure
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-mouse hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-mouse
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-ledger hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-ledger
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-ctags hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-ctags
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-entities hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-entities
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-archive hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-archive
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-screen hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-screen
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-haskell hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-haskell
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-asymptote hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-asymptote
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-mhe hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-mhe
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-table hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-table
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-keys hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-keys
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-org hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-org
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-plot hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-plot
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-awk hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-awk
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-groovy hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-groovy
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-octave hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-octave
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-faces hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-faces
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-colview hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-colview
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-R hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-R
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-timer hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-timer
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-ebnf hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-ebnf
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-mobile hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-mobile
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-fortran hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-fortran
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-shell hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-shell
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-perl hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-perl
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-sqlite hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-sqlite
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-sed hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-sed
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-list hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-list
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-ruby hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-ruby
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-eval hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-eval
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-habit hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-habit
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-clock hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-clock
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-html hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-html
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-src hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-src
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-lisp hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-lisp
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-ditaa hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-ditaa
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-pcomplete hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-pcomplete
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-lint hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-lint
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-rmail hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-rmail
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-latex hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-latex
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-sass hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-sass
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-io hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-io
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-tangle hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-tangle
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-calc hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-calc
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-java hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-java
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-icalendar hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-icalendar
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-eww hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-eww
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-md hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-md
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-beamer hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-beamer
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-element hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-element
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-protocol hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-protocol
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-mscgen hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-mscgen
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-gnuplot hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-gnuplot
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-latex hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-latex
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-id hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-id
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-vala hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-vala
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-man hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-man
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-feed hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-feed
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-lua hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-lua
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-table hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-table
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-ocaml hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-ocaml
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-coq hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-coq
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-picolisp hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-picolisp
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-indent hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-indent
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-lilypond hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-lilypond
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-matlab hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-matlab
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-datetree hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-datetree
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-python hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-python
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-bbdb hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-bbdb
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-makefile hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-makefile
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-duration hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-duration
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-agenda hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-agenda
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-dot hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-dot
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-js hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-js
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-publish hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-publish
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-inlinetask hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-inlinetask
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-org hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-org
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-core hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-core
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-compat hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-compat
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-docview hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-docview
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-odt hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-odt
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-plantuml hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-plantuml
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-ascii hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-ascii
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-loaddefs hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-loaddefs
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-w3m hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-w3m
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-bibtex hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-bibtex
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-info hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-info
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-hledger hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-hledger
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-maxima hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-maxima
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-macro hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-macro
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-sql hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-sql
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-attach hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-attach
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-processing hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-processing
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ox-texinfo hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ox-texinfo
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-irc hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-irc
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-crypt hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-crypt
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-footnote hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-footnote
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/org-install hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/org-install
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-comint hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-comint
/Users/aaronjensen/.emacs.d/elpa/27.0/develop/org-plus-contrib-20180514/ob-shen hides /usr/local/Cellar/emacs-plus/HEAD-ca5713d/share/emacs/27.0.50/lisp/org/ob-shen

Features:
(shadow mail-extr emacsbug sendmail cl-print debug eieio-opt speedbar
sb-image ezimage dframe flow-minor-mode flycheck-flow company-flow
js-doc iswitchb js2-imenu-extras js2-refactor js2r-paredit
js2r-conveniences js2r-conditionals js2r-wrapping js2r-functions
js2r-vars multiple-cursors-core js2r-iife js2r-formatting js2r-helpers
skewer-mode cache-table simple-httpd cursor-sensor rjsx-mode js2-mode
calc-menu calc-aent calc calc-loaddefs calc-macs cal-move
evil-nerd-commenter evil-nerd-commenter-operator evil-nerd-commenter-sdk
ace-window browse-url gravatar sort magithub-completion magithub
magithub-dash magithub-notification magithub-issue-view magithub-comment
magithub-repo magithub-orgs magithub-issue-tricks magithub-issue-post
magithub-edit-mode magithub-ci magithub-issue magithub-label
magithub-user markdown-toc company-restclient know-your-http-well
http-status-codes http-relations http-methods http-headers two-column
iso-transl mmm-mode mmm-univ mmm-class mmm-region mmm-auto mmm-vars
mmm-utils mmm-compat yaml-mode hippie-exp misearch multi-isearch
fill-column-indicator mwim prettier-js org-clock cal-iso magit-bookmark
bookmark tabify timezone org-projectile org-category-capture org-capture
magithub-core magithub-faces magithub-settings smartparens-markdown
markdown-mode ghub+ apiwrap apropos url-cache magit-gitflow epa-file
network-stream starttls smex appt diary-lib diary-loaddefs org-duration
overseer auto-compile packed elisp-slime-nav eros flycheck-package
package-lint finder lispyville lispy lispy-inline avy edebug lispy-tags
mode-local nameless company-lua smartparens-lua lua-mode alchemist
alchemist-macroexpand alchemist-company alchemist-help
alchemist-complete alchemist-refcard alchemist-phoenix alchemist-compile
alchemist-iex alchemist-message alchemist-hooks alchemist-hex
alchemist-mix alchemist-info alchemist-goto alchemist-scope
alchemist-eval alchemist-interact alchemist-server alchemist-execute
alchemist-report alchemist-test-mode alchemist-project alchemist-file
alchemist-key alchemist-utils flycheck-dialyxir smartparens-elixir
elixir-mode pkg-info epl elixir-smie smartparens-javascript js sgml-mode
dom company-robe robe rubocop ruby-refactor ruby-tools sh-script
org-agenda executable pp company-emoji company-emoji-list org-eldoc
evil-org org-table ob-shell ob-ruby org-bullets org-download toc-org
typo org-variable-pitch org-indent image-file org-rmail org-mhe org-irc
org-info org-gnus nnir gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int
gnus-range gnus-win gnus nnheader org-docview doc-view jka-compr
org-bibtex bibtex org-bbdb org-w3m org-checklist org-inlinetask org-gcal
org-archive ob-async smartparens-org ob-elixir ob-http ob-http-mode
ob-restclient restclient ox-gfm ox-md ox-reveal ox-odt rng-loc rng-uri
rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii
ox-publish ox orgit org-element avl-tree generator evil-magit git-rebase
magit-gh-pulls gh gh-users gh-issues gh-pulls gh-repos gh-comments
gh-gist gh-oauth gh-api logito gh-cache gh-auth gh-url gh-profile
magit-obsolete magit-blame magit-stash magit-bisect magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-collab ghub url-http tls
gnutls url-gw nsm url-auth magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode
magit-core magit-autorevert magit-process magit-margin magit-mode org
org-macro org-footnote org-pcomplete org-list org-faces org-entities
org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table
ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs cal-menu calendar cal-loaddefs request-deferred deferred
request url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util mailcap alert log4e notifications dbus
xml gntp cua-base company-tng shrink-path vc-git open-junk-file
eslintd-fix tide tide-lv typescript-mode cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
company-childframe company-web-html company-web company-css
web-completion-data emmet-mode add-node-modules-path evil-matchit
evil-matchit-sdk goto-addr bug-reference auto-highlight-symbol
dtrt-indent highlight-numbers parent-mode highlight-parentheses hideshow
rainbow-delimiters yasnippet-snippets yasnippet flycheck-credo
flycheck-posframe posframe elec-pair smartparens-html web-mode
editorconfig-core editorconfig-core-handle editorconfig-fnmatch colir
counsel-projectile face-remap auto-dim-other-buffers git-gutter-fringe+
fringe-helper git-gutter+ git-commit with-editor magit-git magit-section
magit-utils crm magit-popup async-bytecomp async log-edit message rmc
puny rfc822 mml mml-sec epa gnus-util rmail rmail-loaddefs mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log recentf tree-widget
desktop frameset wakatime-mode contextual-menubar quiet-emacs
fill-or-unfill init-macos-terminal-copy-paste init-terminal-cursor
evil-terminal-cursor-changer init-org init-magit evil-mc
evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make
evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars
evil-mc-known-commands evil-mc-common hl-todo persistent-soft list-utils
pcache eieio-base font-utils server company-statistics company-oddmuse
company-keywords company-etags company-gtags company-dabbrev-code
company-dabbrev company-files company-capf company-cmake company-xcode
company-clang company-semantic company-eclim company-template
company-bbdb company zone xterm-color spacemacs-whitespace-cleanup
ws-butler winum winner spacemacs-purpose-popwin window-purpose-x
imenu-list imenu window-purpose window-purpose-fixes
window-purpose-prefix-overload window-purpose-switch
window-purpose-layout window-purpose-core window-purpose-configuration
window-purpose-utils volatile-highlights vi-tilde-fringe unicode-fonts
tmux string-inflection smartparens-config smartparens-text
smartparens-ruby saveplace savehist ruby-test-mode pcre2el rxt
re-builder projectile-rails rake f inflections inf-ruby ruby-mode smie
projectile grep ibuf-ext ibuffer ibuffer-loaddefs popwin persp-mode
osx-trash origami origami-parsers s linum ivy-hydra info+ image-mode
google-c-style flycheck-pos-tip pos-tip flycheck-jest flycheck find-func
flx-ido eyebrowse evil-surround evil-search-highlight-persist
evil-numbers evil-lisp-state smartparens dash evil-lion evil-indent-plus
evil-exchange evil-escape evil-args evil-anzu anzu eval-sexp-fu
highlight font-lock+ frame-fns avoid editorconfig noutline outline
doom-modeline powerline-separators color all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons memoize diff-hl vc-dir ewoc
vc vc-dispatcher diff-mode counsel dired dired-loaddefs compile esh-util
etags xref project swiper ivy flx delsel ivy-overlay ffap
clean-aindent-mode adaptive-wrap gh-common marshal fix-word rx
docker-tramp tramp-cache hybrid-mode evil-evilified-state which-key
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key use-package-core hydra lv
exec-path-from-shell cus-edit cus-start cus-load time-date evil
evil-integration undo-tree diff evil-maps evil-commands reveal flyspell
ispell evil-jumps evil-command-window evil-types evil-search evil-ex
evil-macros evil-repeat evil-states evil-core evil-common windmove
thingatpt rect evil-digraphs diminish evil-vars bind-map quelpa
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr lisp-mnt help-fns radix-tree hl-line xt-mouse
autorevert filenotify disp-table wid-edit monokai-theme info finder-inf
patch-server init-sass init-php init-html init-evil tramp trampver
tramp-compat tramp-loaddefs shell pcomplete comint ansi-color ring
parse-time format-spec ido-vertical-mode ido core-spacemacs
core-use-package-ext core-transient-state core-micro-state core-toggle
core-keybindings core-fonts-support core-themes-support
core-display-init core-jump core-release-management core-custom-settings
core-configuration-layer eieio-compat core-spacemacs-buffer core-funcs
core-dotspacemacs ht cl warnings package let-alist cl-extra help-mode
url-handlers url-parse auth-source cl-seq password-cache json map
url-vars seq eieio byte-opt bytecomp byte-compile cconv eieio-core
eieio-loaddefs epg epg-config core-command-line pcase core-debug edmacro
kmacro derived cl-macs gv advice profiler easymenu cl-loaddefs cl-lib
page-break-lines easy-mmode core-emacs-backports subr-x tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win
ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow
isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame 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 charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote kqueue cocoa ns multi-tty
make-network-process emacs)

Memory information:
((conses 16 3313264 1015556)
 (symbols 48 114806 1)
 (miscs 40 21624 35745)
 (strings 32 519415 77645)
 (string-bytes 1 19078655)
 (vectors 16 278747)
 (vector-slots 8 6881060 332348)
 (floats 8 1435 3948)
 (intervals 56 135830 18322)
 (buffers 992 658))





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22  5:23 bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem Aaron Jensen
@ 2018-05-22  7:25 ` martin rudalics
  2018-05-22  7:33   ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2018-05-22  7:25 UTC (permalink / raw)
  To: Aaron Jensen, 31546

 >                       (no-accept-focus t)

This should probably be

                        (no-accept-focus . t)

 > Then click where the modeline would be, you'll see the mouse cursor turn
 > to a finger pointer when it's in the right spot.

What happens when you give 'win' a 'mode-line-format' window paramter
of nil?  Also can you try with horizontal scroll bars enabled?

 > If you click then the
 > buffer will shift up one line and there will be no way to get it back.

Does "shift up one line" mean the

1 This is a test

line scrolls off screen or does that line get deleted from the buffer?

martin





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22  7:25 ` martin rudalics
@ 2018-05-22  7:33   ` Aaron Jensen
  2018-05-22  8:40     ` martin rudalics
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-22  7:33 UTC (permalink / raw)
  To: martin rudalics; +Cc: 31546

On Tue, May 22, 2018 at 12:25 AM martin rudalics <rudalics@gmx.at> wrote:

>   >                       (no-accept-focus t)

> This should probably be

>                          (no-accept-focus . t)

Thanks.


>   > Then click where the modeline would be, you'll see the mouse cursor
turn
>   > to a finger pointer when it's in the right spot.

> What happens when you give 'win' a 'mode-line-format' window paramter
> of nil?

Same thing.

> Also can you try with horizontal scroll bars enabled?

Same thing.

>   > If you click then the
>   > buffer will shift up one line and there will be no way to get it back.

> Does "shift up one line" mean the

> 1 This is a test

> line scrolls off screen or does that line get deleted from the buffer?

It scrolls off the screen. If I open the buffer in a frame that accepts
focus I can scroll it back down.

Aaron





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22  7:33   ` Aaron Jensen
@ 2018-05-22  8:40     ` martin rudalics
  2018-05-22 12:51       ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2018-05-22  8:40 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

 >> Also can you try with horizontal scroll bars enabled?
 >
 > Same thing.

Does the finger pointer show up when you move the mouse over the
scroll bar or just above the scroll bar?  Also does the finger pointer
show up over the whole line or just above the regions where some help
echo would be normally shown?  And, if you set 'resize-mini-windows'
to nil, does a vertical drag cursor show up too, somewhere near the
end of the fictitious mode line?

martin





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22  8:40     ` martin rudalics
@ 2018-05-22 12:51       ` Aaron Jensen
  2018-05-22 19:33         ` Alan Third
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-22 12:51 UTC (permalink / raw)
  To: martin rudalics; +Cc: 31546

On Tue, May 22, 2018 at 1:40 AM martin rudalics <rudalics@gmx.at> wrote:

>   >> Also can you try with horizontal scroll bars enabled?
>   >
>   > Same thing.

> Does the finger pointer show up when you move the mouse over the
> scroll bar or just above the scroll bar?  Also does the finger pointer
> show up over the whole line or just above the regions where some help
> echo would be normally shown?  And, if you set 'resize-mini-windows'
> to nil, does a vertical drag cursor show up too, somewhere near the
> end of the fictitious mode line?

It looks like I can't repro in emacs -Q with horizontal scroll bars
enabled. I still can with my config, I don't know what the difference is.

It turns out the finger pointer shows up when my mouse is over the modeline
of the parent frame. With emacs -Q the child frame happens to overlap it.
If I move it away, I can't see the pointer anymore.

'resize-mini-windows' as nil doesn't seem to cause a vertical drag cursor
to show up on the child frame if I move it away from the parent frame.

Here's a gif of what's happening:

https://cl.ly/3T2Z2S0a1x27/Screen%20Recording%202018-05-22%20at%2005.44%20AM.gif

Aaron





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22 12:51       ` Aaron Jensen
@ 2018-05-22 19:33         ` Alan Third
  2018-05-22 19:36           ` Aaron Jensen
  2018-05-23  6:36           ` martin rudalics
  0 siblings, 2 replies; 44+ messages in thread
From: Alan Third @ 2018-05-22 19:33 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

On Tue, May 22, 2018 at 05:51:51AM -0700, Aaron Jensen wrote:
> 
> It turns out the finger pointer shows up when my mouse is over the modeline
> of the parent frame. With emacs -Q the child frame happens to overlap it.
> If I move it away, I can't see the pointer anymore.

Confirmed. I get the tooltip for whatever is under the mouse in the
parent frame, even though the child frame is obscuring it

I think it’s because the parent is the selected frame.

Here’s some fun for you to try:

    (set-frame-parameter nil 'z-group 'below)

put another application’s window partially over the Emacs frame, make
sure the Emacs frame is selected, then mouse‐over where the modeline
should be. The pointer changes and tooltips are displayed as though
the other application window isn’t there.

I guess we need to work out whether the frame is obscured and if so
don’t change the mouse pointer or create tooltips?
-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22 19:33         ` Alan Third
@ 2018-05-22 19:36           ` Aaron Jensen
  2018-05-22 19:44             ` Alan Third
  2018-05-23  6:36             ` martin rudalics
  2018-05-23  6:36           ` martin rudalics
  1 sibling, 2 replies; 44+ messages in thread
From: Aaron Jensen @ 2018-05-22 19:36 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

On Tue, May 22, 2018 at 12:33 PM Alan Third <alan@idiocy.org> wrote:
> Confirmed. I get the tooltip for whatever is under the mouse in the
> parent frame, even though the child frame is obscuring it

I should say that even if I move the frame so that it's not over the parent
frame the scrolling bug still happens. That's the bigger concern for me
than the incorrect mouse pointer/tooltips. If I accidentally click on a
posframe in the wrong place it effectively breaks it.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22 19:36           ` Aaron Jensen
@ 2018-05-22 19:44             ` Alan Third
  2018-05-22 19:51               ` Aaron Jensen
  2018-05-23  6:36             ` martin rudalics
  1 sibling, 1 reply; 44+ messages in thread
From: Alan Third @ 2018-05-22 19:44 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

On Tue, May 22, 2018 at 12:36:58PM -0700, Aaron Jensen wrote:
> On Tue, May 22, 2018 at 12:33 PM Alan Third <alan@idiocy.org> wrote:
> > Confirmed. I get the tooltip for whatever is under the mouse in the
> > parent frame, even though the child frame is obscuring it
> 
> I should say that even if I move the frame so that it's not over the parent
> frame the scrolling bug still happens. That's the bigger concern for me
> than the incorrect mouse pointer/tooltips. If I accidentally click on a
> posframe in the wrong place it effectively breaks it.

Ah, I see. I think this is because even though you can’t select the
frame, mouse clicks still register in that frame, so you can move
point.

I’m not sure if we can stop clicks registering. I don’t know how this
works on other platforms either, presumably better than here...
-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22 19:44             ` Alan Third
@ 2018-05-22 19:51               ` Aaron Jensen
  2018-05-23  6:36                 ` martin rudalics
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-22 19:51 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

On Tue, May 22, 2018 at 12:44 PM Alan Third <alan@idiocy.org> wrote:
> Ah, I see. I think this is because even though you can’t select the
> frame, mouse clicks still register in that frame, so you can move
> point.

> I’m not sure if we can stop clicks registering. I don’t know how this
> works on other platforms either, presumably better than here...

Could we short circuit the mouse handling functions if no-accept-focus is
set?





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22 19:33         ` Alan Third
  2018-05-22 19:36           ` Aaron Jensen
@ 2018-05-23  6:36           ` martin rudalics
  1 sibling, 0 replies; 44+ messages in thread
From: martin rudalics @ 2018-05-23  6:36 UTC (permalink / raw)
  To: Alan Third, Aaron Jensen; +Cc: 31546

 > Confirmed. I get the tooltip for whatever is under the mouse in the
 > parent frame, even though the child frame is obscuring it

Just for the record: Aaron, do you also see the tooltips adherent to
the parent frame appear over the child frame?

 > I think it’s because the parent is the selected frame.
 >
 > Here’s some fun for you to try:
 >
 >      (set-frame-parameter nil 'z-group 'below)
 >
 > put another application’s window partially over the Emacs frame, make
 > sure the Emacs frame is selected, then mouse‐over where the modeline
 > should be. The pointer changes and tooltips are displayed as though
 > the other application window isn’t there.

Do you really need the

 >      (set-frame-parameter nil 'z-group 'below)

for this experiment?  I wonder why (it doesn't happen here because I
always use a strict focus-follows-mouse + autoraise policy).

 > I guess we need to work out whether the frame is obscured and if so
 > don’t change the mouse pointer or create tooltips?

On my system I've occasionally seen Thunderbird tooltips appear on top
of a Firefox window (but not vice versa) so I suspect that this
problem may be quite common.  But with my mouse policy it's certainly
less likely to occur.

martin






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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22 19:36           ` Aaron Jensen
  2018-05-22 19:44             ` Alan Third
@ 2018-05-23  6:36             ` martin rudalics
  1 sibling, 0 replies; 44+ messages in thread
From: martin rudalics @ 2018-05-23  6:36 UTC (permalink / raw)
  To: Aaron Jensen, Alan Third; +Cc: 31546

 > I should say that even if I move the frame so that it's not over the parent
 > frame the scrolling bug still happens.

If "the frame" is a child frame then this problem is pertinent to your
windowing system: With X or Windows child frames cannot be moved out
of their parent frames.

 > That's the bigger concern for me
 > than the incorrect mouse pointer/tooltips. If I accidentally click on a
 > posframe in the wrong place it effectively breaks it.

I still don't understand which command gets executed in order to
scroll the parent frame's window.  That is, if with emacs -Q I click
anywhere on my single frame's only window's mode line, that window
never scrolls.  So please tell me how your window gets scrolled.

martin





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-22 19:51               ` Aaron Jensen
@ 2018-05-23  6:36                 ` martin rudalics
  2018-05-23 11:14                   ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2018-05-23  6:36 UTC (permalink / raw)
  To: Aaron Jensen, Alan Third; +Cc: 31546

 >> Ah, I see. I think this is because even though you can’t select the
 >> frame, mouse clicks still register in that frame, so you can move
 >> point.
 >
 >> I’m not sure if we can stop clicks registering. I don’t know how this
 >> works on other platforms either, presumably better than here...
 >
 > Could we short circuit the mouse handling functions if no-accept-focus is
 > set?

Now I am confused.  Is this in any way related to the OP's report?
There the window below in the z-order gets scrolled but here you seem
to mean that a mouse click affects the window above in the z-order.

martin






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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-23  6:36                 ` martin rudalics
@ 2018-05-23 11:14                   ` Aaron Jensen
  2018-05-23 21:31                     ` Alan Third
  2018-05-24  7:19                     ` martin rudalics
  0 siblings, 2 replies; 44+ messages in thread
From: Aaron Jensen @ 2018-05-23 11:14 UTC (permalink / raw)
  To: martin rudalics; +Cc: 31546, Alan Third

On Tue, May 22, 2018 at 11:36 PM martin rudalics <rudalics@gmx.at> wrote:
> Now I am confused.  Is this in any way related to the OP's report?
> There the window below in the z-order gets scrolled but here you seem
> to mean that a mouse click affects the window above in the z-order.

I'm the OP. I'm sorry if I wasn't clear in the initial report. The problem
is that the child frame (which appears on top of the parent frame) gets
scrolled on click. In this gif, the visible frame is the child frame:
https://dzwonsemrish7.cloudfront.net/items/3p2o232r1S333y1o1H3S/Screen%20Recording%202018-05-22%20at%2005.44%20AM.gif?v=b53e93c1

> I still don't understand which command gets executed in order to
> scroll the parent frame's window.  That is, if with emacs -Q I click
> anywhere on my single frame's only window's mode line, that window
> never scrolls.  So please tell me how your window gets scrolled.

I do not know what the command is that is scrolling the child frame. It
does not appear in view-lossage.

> If "the frame" is a child frame then this problem is pertinent to your
> windowing system: With X or Windows child frames cannot be moved out
> of their parent frames.

This may be, but I'm at a loss as to how my windowing system would increase
the height of an emacs window. It seems more likely that it is due to some
bug in nsterm, but I have been wrong before.

Thanks,

Aaron





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-23 11:14                   ` Aaron Jensen
@ 2018-05-23 21:31                     ` Alan Third
  2018-05-23 22:21                       ` Aaron Jensen
  2018-05-24  7:19                     ` martin rudalics
  1 sibling, 1 reply; 44+ messages in thread
From: Alan Third @ 2018-05-23 21:31 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

On Wed, May 23, 2018 at 04:14:19AM -0700, Aaron Jensen wrote:
> On Tue, May 22, 2018 at 11:36 PM martin rudalics <rudalics@gmx.at> wrote:
> > I still don't understand which command gets executed in order to
> > scroll the parent frame's window.  That is, if with emacs -Q I click
> > anywhere on my single frame's only window's mode line, that window
> > never scrolls.  So please tell me how your window gets scrolled.
> 
> I do not know what the command is that is scrolling the child frame. It
> does not appear in view-lossage.

Is it a mouse drag? It looks the same here...

> > If "the frame" is a child frame then this problem is pertinent to your
> > windowing system: With X or Windows child frames cannot be moved out
> > of their parent frames.
> 
> This may be, but I'm at a loss as to how my windowing system would increase
> the height of an emacs window. It seems more likely that it is due to some
> bug in nsterm, but I have been wrong before.

The frame changes height?
-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-23 21:31                     ` Alan Third
@ 2018-05-23 22:21                       ` Aaron Jensen
  2018-05-24  7:19                         ` martin rudalics
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-23 22:21 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

On Wed, May 23, 2018 at 2:31 PM Alan Third <alan@idiocy.org> wrote:
> > I do not know what the command is that is scrolling the child frame. It
> > does not appear in view-lossage.

> Is it a mouse drag? It looks the same here...

Ok, I have a guess. I can reproduce it by setting scroll-margin to
something like 5 and clicking on the last line. The window scrolls so that
the point is visible 5 lines above the bottom of the window. Even if the
scroll-margin is 0, I can reproduce it by clicking on the last line if it
is partially visible (as it may be with frame-resize-pixelwise set). I do
not know what makes child-frames without modelines more susceptible to
this, but it at least looks like it's doing the same thing--scrolling the
window to where it thinks it needs to be scrolled in order for the point to
be fully visible.

> The frame changes height?

Sorry, I meant scrollable region/buffer (not sure which or what it's called
in emacs parlance)--the scrollbar handle shrinks.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-23 11:14                   ` Aaron Jensen
  2018-05-23 21:31                     ` Alan Third
@ 2018-05-24  7:19                     ` martin rudalics
  1 sibling, 0 replies; 44+ messages in thread
From: martin rudalics @ 2018-05-24  7:19 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546, Alan Third

 >> Now I am confused.  Is this in any way related to the OP's report?
 >> There the window below in the z-order gets scrolled but here you seem
 >> to mean that a mouse click affects the window above in the z-order.
 >
 > I'm the OP. I'm sorry if I wasn't clear in the initial report. The problem
 > is that the child frame (which appears on top of the parent frame) gets
 > scrolled on click. In this gif, the visible frame is the child frame:
 > https://dzwonsemrish7.cloudfront.net/items/3p2o232r1S333y1o1H3S/Screen%20Recording%202018-05-22%20at%2005.44%20AM.gif?v=b53e93c1

But I referred to Alan's response and it seems that he sees the
converse of what you observed.

 >> I still don't understand which command gets executed in order to
 >> scroll the parent frame's window.  That is, if with emacs -Q I click
 >> anywhere on my single frame's only window's mode line, that window
 >> never scrolls.  So please tell me how your window gets scrolled.
 >
 > I do not know what the command is that is scrolling the child frame. It
 > does not appear in view-lossage.

And C-h k does not give any clue either?  Try putting "(ding)" into
'mouse-set-point' just before "(mouse-minibuffer-check)" and check
whether it rings when you click.  If it does, then please look into
'posn-set-point' which window gets selected.  I suppose it's the
parent frame's window which gets passed via EVENT to 'mouse-set-point'
so we will have to check why the child frame's window is not found
when constructing the event.  The corresponding GTK code to get the
right frame is already quite painful (see 'XTmouse_position') so I
wouldn't be surprised if macOS had similar problems.

 >> If "the frame" is a child frame then this problem is pertinent to your
 >> windowing system: With X or Windows child frames cannot be moved out
 >> of their parent frames.
 >
 > This may be, but I'm at a loss as to how my windowing system would increase
 > the height of an emacs window. It seems more likely that it is due to some
 > bug in nsterm, but I have been wrong before.

Sorry.  I referred to your earlier

   I should say that even if I move the frame so that it's not over the parent
   frame the scrolling bug still happens.

so this was about moving the frame and not changing its height.

martin





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-23 22:21                       ` Aaron Jensen
@ 2018-05-24  7:19                         ` martin rudalics
  2018-05-24 10:53                           ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2018-05-24  7:19 UTC (permalink / raw)
  To: Aaron Jensen, Alan Third; +Cc: 31546

 > Ok, I have a guess. I can reproduce it by setting scroll-margin to
 > something like 5 and clicking on the last line. The window scrolls so that
 > the point is visible 5 lines above the bottom of the window. Even if the
 > scroll-margin is 0, I can reproduce it by clicking on the last line if it
 > is partially visible (as it may be with frame-resize-pixelwise set). I do
 > not know what makes child-frames without modelines more susceptible to
 > this, but it at least looks like it's doing the same thing--scrolling the
 > window to where it thinks it needs to be scrolled in order for the point to
 > be fully visible.

So does 'mouse-set-point' get executed?  If it does, then on which
frame?  Note that if I understand Aaron correctly, the "scroll"
happens on the parent frame and not on the child frame.

martin





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-24  7:19                         ` martin rudalics
@ 2018-05-24 10:53                           ` Aaron Jensen
  2018-05-24 11:06                             ` Aaron Jensen
  2018-05-24 15:27                             ` Eli Zaretskii
  0 siblings, 2 replies; 44+ messages in thread
From: Aaron Jensen @ 2018-05-24 10:53 UTC (permalink / raw)
  To: martin rudalics; +Cc: 31546, Alan Third

[-- Attachment #1: Type: text/plain, Size: 899 bytes --]

>   > I do not know what the command is that is scrolling the child frame. It
>   > does not appear in view-lossage.

> And C-h k does not give any clue either?

Ah, C-h k does give a clue, thank you!

   <down-mouse-1> at that spot runs the command mouse-drag-region
   <mouse-1> at that spot runs the command mouse-set-point

The window selected in posn-set-point is the window in the child frame,
which is the window that scrolls (and that I do not want to scroll).

But, the thing doing the scrolling is 'mouse-drag-region', which calls
'mouse-drag-track', which calculates the bottom of the window incorrectly
if it does not have a mode-line.

The attached patch fixes this, which fixes my originally reported problem.
Given that it impacts a use of child-frames and it's relatively minor I'd
propose that it gets applied to emacs 26 (probably after 26.1 release?) if
it's acceptable.

Thanks,

[-- Attachment #2: 0001-Prevent-errant-scroll-on-mouse-click-Bug-31546.patch --]
[-- Type: application/octet-stream, Size: 916 bytes --]

From aac9eb369af382f4197d1ac9d1efaf3e384126a6 Mon Sep 17 00:00:00 2001
From: Aaron Jensen <aaronjensen@gmail.com>
Date: Thu, 24 May 2018 03:45:03 -0700
Subject: [PATCH] Prevent errant scroll on mouse click (Bug#31546)

* lisp/mouse.el (mouse-drag-track): Only account for mode-line height
  if `mode-line-format' is non-nil.
---
 lisp/mouse.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lisp/mouse.el b/lisp/mouse.el
index 95aada9b15..6a45118de0 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1219,7 +1219,8 @@ mouse-drag-track
 	 (bounds (window-edges start-window))
 	 (make-cursor-line-fully-visible nil)
 	 (top (nth 1 bounds))
-	 (bottom (if (window-minibuffer-p start-window)
+	 (bottom (if (or (window-minibuffer-p start-window)
+                         (not mode-line-format))
 		     (nth 3 bounds)
 		   ;; Don't count the mode line.
 		   (1- (nth 3 bounds))))
-- 
2.17.0


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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-24 10:53                           ` Aaron Jensen
@ 2018-05-24 11:06                             ` Aaron Jensen
  2018-05-24 15:28                               ` Eli Zaretskii
  2018-05-24 15:27                             ` Eli Zaretskii
  1 sibling, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-24 11:06 UTC (permalink / raw)
  To: martin rudalics; +Cc: 31546, Alan Third

On Thu, May 24, 2018 at 3:53 AM Aaron Jensen <aaronjensen@gmail.com> wrote:
> The attached patch fixes this, which fixes my originally reported problem.
> Given that it impacts a use of child-frames and it's relatively minor I'd
> propose that it gets applied to emacs 26 (probably after 26.1 release?) if
> it's acceptable.

Hm, it appears that it fixes the issue when the last visible line is
clicked, but if 'frame-resize-pixelwise' is non-nil and a partially visible
line is clicked it still scrolls to make that line fully visible even if
the buffer does not extend to that line. Perhaps it would also be useful to
prevent attempting to scroll into view a line that the buffer does not
extend to?

To be clear, I believe the previous patch still fixes a bug, it just
doesn't completely eradicate this unnecessary scrolling on click.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-24 10:53                           ` Aaron Jensen
  2018-05-24 11:06                             ` Aaron Jensen
@ 2018-05-24 15:27                             ` Eli Zaretskii
  1 sibling, 0 replies; 44+ messages in thread
From: Eli Zaretskii @ 2018-05-24 15:27 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546, alan

> From: Aaron Jensen <aaronjensen@gmail.com>
> Date: Thu, 24 May 2018 03:53:54 -0700
> Cc: 31546@debbugs.gnu.org, Alan Third <alan@idiocy.org>
> 
> The window selected in posn-set-point is the window in the child frame,
> which is the window that scrolls (and that I do not want to scroll).
> 
> But, the thing doing the scrolling is 'mouse-drag-region', which calls
> 'mouse-drag-track', which calculates the bottom of the window incorrectly
> if it does not have a mode-line.

Is this NS specific?  I cannot reproduce any problem with the original
recipe posted with this bug report, but maybe you are already using a
modified one (the talk about pixelwise resizing seems to suggest
that)?

If it's NS-specific, I'd like to understand the issue deeper before we
decide how and on which branch to fix it.

Thanks.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-24 11:06                             ` Aaron Jensen
@ 2018-05-24 15:28                               ` Eli Zaretskii
  2018-05-24 15:58                                 ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Eli Zaretskii @ 2018-05-24 15:28 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546, alan

> From: Aaron Jensen <aaronjensen@gmail.com>
> Date: Thu, 24 May 2018 04:06:19 -0700
> Cc: 31546@debbugs.gnu.org, Alan Third <alan@idiocy.org>
> 
> Hm, it appears that it fixes the issue when the last visible line is
> clicked, but if 'frame-resize-pixelwise' is non-nil and a partially visible
> line is clicked it still scrolls to make that line fully visible even if
> the buffer does not extend to that line. Perhaps it would also be useful to
> prevent attempting to scroll into view a line that the buffer does not
> extend to?

What do you mean by "a line that the buffer does not extend to"?  Is
that empty space beyond EOB, or is that something else?





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-24 15:28                               ` Eli Zaretskii
@ 2018-05-24 15:58                                 ` Aaron Jensen
  2018-05-25  6:34                                   ` martin rudalics
  2018-05-26 16:38                                   ` Alan Third
  0 siblings, 2 replies; 44+ messages in thread
From: Aaron Jensen @ 2018-05-24 15:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 31546, Alan Third

On Thu, May 24, 2018 at 8:29 AM Eli Zaretskii <eliz@gnu.org> wrote:
> Is this NS specific?  I cannot reproduce any problem with the original
> recipe posted with this bug report, but maybe you are already using a
> modified one (the talk about pixelwise resizing seems to suggest
> that)?

> If it's NS-specific, I'd like to understand the issue deeper before we
> decide how and on which branch to fix it.

It could very well be. I don't have a non-NS machine to test. The behavior
seems isolated to frames that have no-accept-focus set. It doesn't actually
require the frame to be a child frame. This is the minimal repro so far:

(progn
   (let ((buffer (get-buffer " *foo*")))
     (when (buffer-live-p buffer)
       (kill-buffer buffer)))
   (let ((buffer (get-buffer-create " *foo*"))
         (after-make-frame-functions nil))
     (with-current-buffer buffer
       (goto-char (point-min))
       (insert "1 This is a test\n2 This is a test\n3 This is a test")
       (delete-region (point) (point-max))

       (setq-local resize-mini-windows nil)
       (setq-local mode-line-format nil)
       (setq-local repro-frame
                   (make-frame
                    `(
                      (minibuffer . nil)
                      (no-accept-focus . t)
                      )
                    ))
       (let ((win (frame-root-window repro-frame)))
         (set-window-parameter win 'mode-line-format nil)
         (set-window-buffer win buffer)))))

It's easier to repro if after evaling you move the new frame so that it no
longer overlaps the original frame. Then click a few px from the bottom of
the frame--about half of a line-height from the bottom. You may need to
click a couple of times (slowly) around this area. I tend to have the best
luck towards the bottom left of the frame. Here's a gif:

https://cl.ly/1R3Q231u201R/Screen%20Recording%202018-05-24%20at%2008.56%20AM.gif

One question is, on other platforms, if you inspect the start-event in
mouse-drag-region is it for the new frame or the original frame? For me on
macOS, it's for the new frame even though no-accept-focus is set.

> What do you mean by "a line that the buffer does not extend to"?  Is
> that empty space beyond EOB, or is that something else?

Yes.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-24 15:58                                 ` Aaron Jensen
@ 2018-05-25  6:34                                   ` martin rudalics
  2018-05-26 16:38                                   ` Alan Third
  1 sibling, 0 replies; 44+ messages in thread
From: martin rudalics @ 2018-05-25  6:34 UTC (permalink / raw)
  To: Aaron Jensen, Eli Zaretskii; +Cc: 31546, Alan Third

 >         (setq-local repro-frame
 >                     (make-frame
 >                      `(
 >                        (minibuffer . nil)
 >                        (no-accept-focus . t)
 >                        )
 >                      ))

What happens when you additionally set (no-focus-on-map . t) here?

martin





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-24 15:58                                 ` Aaron Jensen
  2018-05-25  6:34                                   ` martin rudalics
@ 2018-05-26 16:38                                   ` Alan Third
  2018-05-26 17:02                                     ` Aaron Jensen
  1 sibling, 1 reply; 44+ messages in thread
From: Alan Third @ 2018-05-26 16:38 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

On Thu, May 24, 2018 at 08:58:32AM -0700, Aaron Jensen wrote:
> On Thu, May 24, 2018 at 8:29 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > Is this NS specific?  I cannot reproduce any problem with the original
> > recipe posted with this bug report, but maybe you are already using a
> > modified one (the talk about pixelwise resizing seems to suggest
> > that)?
> 
> > If it's NS-specific, I'd like to understand the issue deeper before we
> > decide how and on which branch to fix it.

I believe it is NS specific. I can’t reproduce it on an X build.

> The behavior seems isolated to frames that have no-accept-focus set.
> It doesn't actually require the frame to be a child frame.

Resizing the font has no effect on the area that you have to click to
see this happen, so it’s nothing to do with clicking on the last line
of the window, or anything to do with the modeline or the minibuffer,
as they change size with the font.

I think it’s the height of the titlebar that’s defining the area. I’ve
no idea why that would be an issue, though, or what no-accept-focus
has to do with it. I also can’t find any hard‐coded references to the
titlebar height, so I suppose we need to add the titlebar height
somewhere...

-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-26 16:38                                   ` Alan Third
@ 2018-05-26 17:02                                     ` Aaron Jensen
  2018-05-26 18:22                                       ` Alan Third
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-26 17:02 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

On Sat, May 26, 2018 at 9:38 AM Alan Third <alan@idiocy.org> wrote:
> Resizing the font has no effect on the area that you have to click to
> see this happen, so it’s nothing to do with clicking on the last line
> of the window, or anything to do with the modeline or the minibuffer,
> as they change size with the font.

This isn't the behavior I see. The area is roughly 30px tall when I do:

(set-face-attribute 'default nil :height 300)

And roughly 10px tall when I do:

(set-face-attribute 'default nil :height 100)


> I think it’s the height of the titlebar that’s defining the area. I’ve
> no idea why that would be an issue, though, or what no-accept-focus
> has to do with it. I also can’t find any hard‐coded references to the
> titlebar height, so I suppose we need to add the titlebar height
> somewhere...

It reproduces with (undecorated . t), which does not have a title bar, so I
don't know if the title bar height is the problem.

By the way, are you testing with my patch or without? My patch may not fix
the ultimate root cause, but I'm not sure if it's controversial. The
conditions for deciding whether or not to count the mode line should
probably take into account whether or not there is a mode-line, no?





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-26 17:02                                     ` Aaron Jensen
@ 2018-05-26 18:22                                       ` Alan Third
  2018-05-26 20:15                                         ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2018-05-26 18:22 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

On Sat, May 26, 2018 at 10:02:52AM -0700, Aaron Jensen wrote:
> On Sat, May 26, 2018 at 9:38 AM Alan Third <alan@idiocy.org> wrote:
> > Resizing the font has no effect on the area that you have to click to
> > see this happen, so it’s nothing to do with clicking on the last line
> > of the window, or anything to do with the modeline or the minibuffer,
> > as they change size with the font.
> 
> This isn't the behavior I see. The area is roughly 30px tall when I do:
> 
> (set-face-attribute 'default nil :height 300)
> 
> And roughly 10px tall when I do:
> 
> (set-face-attribute 'default nil :height 100)

Ah yeah. I must have been getting confused. I just seem to be adding
confusion to this thread. Sorry for the noise.

> By the way, are you testing with my patch or without? My patch may not fix
> the ultimate root cause, but I'm not sure if it's controversial. The
> conditions for deciding whether or not to count the mode line should
> probably take into account whether or not there is a mode-line, no?

I’d have thought so, but it works in every other situation without the
patch so I can’t help thinking the patch must change the behaviour
where it previously worked.
-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-26 18:22                                       ` Alan Third
@ 2018-05-26 20:15                                         ` Aaron Jensen
  2018-05-27  6:22                                           ` martin rudalics
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-26 20:15 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

On Sat, May 26, 2018 at 11:22 AM Alan Third <alan@idiocy.org> wrote:
> Ah yeah. I must have been getting confused. I just seem to be adding
> confusion to this thread. Sorry for the noise.

No problem, this is a confusing issue. I appreciate you looking into this
and reproducing it.

> I’d have thought so, but it works in every other situation without the
> patch so I can’t help thinking the patch must change the behaviour
> where it previously worked.

On X, if you C-h k and then click in that area (when the new frame does not
overlap the original frame), does it register a mouse-drag-region and
mouse-set-point?

I'm also confused as to why it is harder to repro when the new frame is
overlapping the original frame. If they're not overlapping, it repros every
time.

Another hint: If I repro it, then scroll with the mousewheel down to
restore it to the original scroll position and click again w/o moving the
mouse, then click again, it does not repro. If I move my mouse before
clicking it repros again.

A question: Should frames with no-accept-focus still accept mouse events? I
imagine the answer is yes, but just want to check in case that's the thing
that is different between X and NS





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-26 20:15                                         ` Aaron Jensen
@ 2018-05-27  6:22                                           ` martin rudalics
  2018-05-27 15:57                                             ` Eli Zaretskii
  0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2018-05-27  6:22 UTC (permalink / raw)
  To: Aaron Jensen, Alan Third; +Cc: 31546

 > A question: Should frames with no-accept-focus still accept mouse events? I
 > imagine the answer is yes, but just want to check in case that's the thing
 > that is different between X and NS

Note that you can already use the 'mouse-wheel-frame' parameter to
specifiy which frame should be scrolled instead of the one where the
mouse cursor is currently found.  It shouldn't be difficult to extend
that solution to other mouse activites.  But I don't yet know who's
responsible for scrolling a window when 'mouse-drag-region' is
triggered by a single mouse click.  Until your report, I didn't even
know that Emacs would scroll a window in that case although it seems
convenient (and with a scroll margin of 1 and scrolling agressively
set to 0.0 it scrolls quite smoothly).

martin





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27  6:22                                           ` martin rudalics
@ 2018-05-27 15:57                                             ` Eli Zaretskii
  2018-05-27 17:13                                               ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Eli Zaretskii @ 2018-05-27 15:57 UTC (permalink / raw)
  To: martin rudalics; +Cc: 31546, alan, aaronjensen

> Date: Sun, 27 May 2018 08:22:59 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: Eli Zaretskii <eliz@gnu.org>, 31546@debbugs.gnu.org
> 
> I don't yet know who's responsible for scrolling a window when
> 'mouse-drag-region' is triggered by a single mouse click.  Until
> your report, I didn't even know that Emacs would scroll a window in
> that case although it seems convenient (and with a scroll margin of
> 1 and scrolling agressively set to 0.0 it scrolls quite smoothly).

Based on the description, I think it's redisplay that's scrolling,
because the mouse click sets point in a line that is visible only
partially.  One can make sure by invoking trace-redisplay before
clicking (but make sure you have blink-cursor-mode and
global-eldoc-mode turned off before you do that, to avoid unnecessary
redisplay cycles that will muddy the waters).






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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27 15:57                                             ` Eli Zaretskii
@ 2018-05-27 17:13                                               ` Aaron Jensen
  2018-05-27 17:38                                                 ` Eli Zaretskii
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-27 17:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 31546, Alan Third

On Sun, May 27, 2018 at 8:58 AM Eli Zaretskii <eliz@gnu.org> wrote:
> Based on the description, I think it's redisplay that's scrolling,
> because the mouse click sets point in a line that is visible only
> partially.

To be clear, this is only true if my patch is applied. If my patch is not
applied, clicking on the last line of a frame that has no minibuffer and no
mode-line also triggers the scroll as well because the fact that it has no
mode-line is not taken into account.

Also, why is it that the point can be set to a location past the buffer's
end? The point won't actually move there visually, so I'm not sure why it
can be set there.

> One can make sure by invoking trace-redisplay before
> clicking (but make sure you have blink-cursor-mode and
> global-eldoc-mode turned off before you do that, to avoid unnecessary
> redisplay cycles that will muddy the waters).

trace-redisplay is only in x, it doesn't appear to be defined in ns. That
said, it could be redisplay that is scrolling it, but it seems that it's
due to something that mouse-drag-track is doing. There's a lot going on in
there that I do not understand, so it's hard for me to track down. Using
edebug on it doesn't seem to help much either because I keep getting
trapped in the mouse-movement lambda.

Could it have something to do with the mouse drag code getting confused
because the window is never selected?





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27 17:13                                               ` Aaron Jensen
@ 2018-05-27 17:38                                                 ` Eli Zaretskii
  2018-05-27 17:52                                                   ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Eli Zaretskii @ 2018-05-27 17:38 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546, alan

> From: Aaron Jensen <aaronjensen@gmail.com>
> Date: Sun, 27 May 2018 10:13:55 -0700
> Cc: martin rudalics <rudalics@gmx.at>, Alan Third <alan@idiocy.org>, 31546@debbugs.gnu.org
> 
> On Sun, May 27, 2018 at 8:58 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > Based on the description, I think it's redisplay that's scrolling,
> > because the mouse click sets point in a line that is visible only
> > partially.
> 
> To be clear, this is only true if my patch is applied. If my patch is not
> applied, clicking on the last line of a frame that has no minibuffer and no
> mode-line also triggers the scroll as well because the fact that it has no
> mode-line is not taken into account.

Not sure I understand the connection between not having a mode line
and the scroll.  Can you elaborate?  Apologies if this was already
explained up-thread.

> Also, why is it that the point can be set to a location past the buffer's
> end? The point won't actually move there visually, so I'm not sure why it
> can be set there.

"Doesn't move there" and "can be set there" sounds like a
contradiction, doesn't it?  I'm probably missing something because I
don't understand what you describe.  Clicking on the empty area beyond
the last buffer position should move point to EOB, but you seem to be
talking about something else?

> > One can make sure by invoking trace-redisplay before
> > clicking (but make sure you have blink-cursor-mode and
> > global-eldoc-mode turned off before you do that, to avoid unnecessary
> > redisplay cycles that will muddy the waters).
> 
> trace-redisplay is only in x, it doesn't appear to be defined in ns.

You need to build with --enable-checking='yes,glyphs' to have that
command compiled into Emacs.  It's on xdisp.c, so it should be
available on all builds.

I usually find its output helpful because it provides hints for where
to look for relevant code.  Of course, if the problem is in NS
specific code, we won't see anything interesting in the trace.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27 17:38                                                 ` Eli Zaretskii
@ 2018-05-27 17:52                                                   ` Aaron Jensen
  2018-05-27 18:52                                                     ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-27 17:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 31546, Alan Third

On Sun, May 27, 2018 at 10:39 AM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: Aaron Jensen <aaronjensen@gmail.com>
> > Date: Sun, 27 May 2018 10:13:55 -0700
> > Cc: martin rudalics <rudalics@gmx.at>, Alan Third <alan@idiocy.org>,
31546@debbugs.gnu.org
> >
> > On Sun, May 27, 2018 at 8:58 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > > Based on the description, I think it's redisplay that's scrolling,
> > > because the mouse click sets point in a line that is visible only
> > > partially.
> >
> > To be clear, this is only true if my patch is applied. If my patch is
not
> > applied, clicking on the last line of a frame that has no minibuffer
and no
> > mode-line also triggers the scroll as well because the fact that it has
no
> > mode-line is not taken into account.

> Not sure I understand the connection between not having a mode line
> and the scroll.  Can you elaborate?  Apologies if this was already
> explained up-thread.

I'm not sure I can explain the actual mechanism as to why it matters, but
I'll explain what I can see.
In mouse-drag-track, the bottom of the window is calculated:

(bottom (if (window-minibuffer-p start-window)
      (nth 3 bounds)
    ;; Don't count the mode line.
    (1- (nth 3 bounds))))

I'm guessing this is somehow used to determine whether or not to scroll the
clicked location into view. The calculation is wrong if there is no
mode-line because it subtracts 1 unnecessarily. My patch adds to the
condition a check for the mode line format and does not subtract 1 if that
is nil.

Actually, looking at the code that's exactly what's happening:

(cond
                   ((null mouse-row))
                   ((< mouse-row top)
                    (mouse-scroll-subr start-window (- mouse-row top)
                                       nil start-point))
                   ((>= mouse-row bottom)
                    (mouse-scroll-subr start-window (1+ (- mouse-row bottom))
                                       nil start-point)))

If the location clicked is >= to the bottom (which is miscalculated without
my patch when there is no mode-line and it is >= in the case of a partial
line visibility) then the window is scrolled, explicitly. So, that's the
problem afaict.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27 17:52                                                   ` Aaron Jensen
@ 2018-05-27 18:52                                                     ` Aaron Jensen
  2018-05-27 21:24                                                       ` Alan Third
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-27 18:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 31546, Alan Third

On Sun, May 27, 2018 at 10:52 AM Aaron Jensen <aaronjensen@gmail.com> wrote:
> I'm guessing this is somehow used to determine whether or not to scroll
the
> clicked location into view. The calculation is wrong if there is no
> mode-line because it subtracts 1 unnecessarily. My patch adds to the
> condition a check for the mode line format and does not subtract 1 if that
> is nil.

> Actually, looking at the code that's exactly what's happening:

> (cond
>                     ((null mouse-row))
>                     ((< mouse-row top)
>                      (mouse-scroll-subr start-window (- mouse-row top)
>                                         nil start-point))
>                     ((>= mouse-row bottom)
>                      (mouse-scroll-subr start-window (1+ (- mouse-row
bottom))
>                                         nil start-point)))

> If the location clicked is >= to the bottom (which is miscalculated
without
> my patch when there is no mode-line and it is >= in the case of a partial
> line visibility) then the window is scrolled, explicitly. So, that's the
> problem afaict.

One more clue: On a frame that doesn't accept focus on a mac, a single
click results in a mouse-movement getting fired immediately after the
down-mouse-1. A single click on a normal frame does not do this. This is
why this issue doesn't repro on a frame that accepts focus. Something about
how the non-focusable frames are causes them to get mouse moves immediately
after a click. This means that the transient map created in
mouse-drag-track immediately gets invoked with a mouse-movement, which is
what triggers the scroll. As mentioned earlier in the thread, this is only
true if the mouse has moved since the last click. That means if you click
twice in row, only the first click will get a mouse-movement fired after
it. If you then move the mouse and click again, it'll fire the down-mouse-1
then the mouse-movement again.

Perhaps someone who understands the way that mouse tracking works on mac
would know why a frame that doesn't accept focus behaves differently? It's
as if the non-focusable window only gets notified of a mouse's new position
whenever a click happens, so every click is as if the click happened and
then the mouse moved to that position.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27 18:52                                                     ` Aaron Jensen
@ 2018-05-27 21:24                                                       ` Alan Third
  2018-05-27 21:53                                                         ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2018-05-27 21:24 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

On Sun, May 27, 2018 at 11:52:36AM -0700, Aaron Jensen wrote:
> One more clue: On a frame that doesn't accept focus on a mac, a
> single click results in a mouse-movement getting fired immediately
> after the down-mouse-1. A single click on a normal frame does not do
> this. This is why this issue doesn't repro on a frame that accepts
> focus. Something about how the non-focusable frames are causes them
> to get mouse moves immediately after a click. This means that the
> transient map created in mouse-drag-track immediately gets invoked
> with a mouse-movement, which is what triggers the scroll. As
> mentioned earlier in the thread, this is only true if the mouse has
> moved since the last click. That means if you click twice in row,
> only the first click will get a mouse-movement fired after it. If
> you then move the mouse and click again, it'll fire the down-mouse-1
> then the mouse-movement again.
> 
> Perhaps someone who understands the way that mouse tracking works on
> mac would know why a frame that doesn't accept focus behaves
> differently? It's as if the non-focusable window only gets notified
> of a mouse's new position whenever a click happens, so every click
> is as if the click happened and then the mouse moved to that
> position.

Hmm, OK. So normally the first click on a non‐selected NSWindow makes
that NSWindow key (i.e. it selects the frame without registering an
emacs mouse down event), but by enabling no-accept-focus we prevent
the NSWindow becoming key, and the click is then actually registered
as a mouseDown event (therefore causing an Emacs mouse down event).

There’s also a mouseMoved method that says ‘Tell emacs the mouse has
moved.’, but I’m unsure how it does that, or if it’s even relevant. I
don’t think it sends any events unless you have
mouse-autoselect-window set. mouseDragged just calls mouseMoved, so
Emacs must be doing its own mouse move/drag detection elsewhere.

mouseMoved is called every time the mouse pointer moves on an Emacs
frame whether it’s selected or not.

Is it possible a move is being registered because the click was in
frame X, but frame Y is selected? I noticed while testing this that
ns_mouse_position is sometimes (always?) called for multiple frames
when one mouse click has been made.

And, actually, I’m not sure if it’s a bug, but the X and Y coords
returned are for the frame ns-mouse-position is being run from, rather
than from the frame it lists in its output...

*sigh* try this:

modified   src/nsterm.m
@@ -2547,7 +2547,7 @@ so some key presses (TAB) are swallowed by the system. */
 
   if (f && FRAME_NS_P (f))
     {
-      view = FRAME_NS_VIEW (*fp);
+      view = FRAME_NS_VIEW (f);
 
       position = [[view window] mouseLocationOutsideOfEventStream];
       position = [view convertPoint: position fromView: nil];


-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27 21:24                                                       ` Alan Third
@ 2018-05-27 21:53                                                         ` Aaron Jensen
  2018-06-02  6:35                                                           ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-05-27 21:53 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

On Sun, May 27, 2018 at 2:24 PM Alan Third <alan@idiocy.org> wrote:
> *sigh* try this:

> modified   src/nsterm.m
> @@ -2547,7 +2547,7 @@ so some key presses (TAB) are swallowed by the
system. */

>     if (f && FRAME_NS_P (f))
>       {
> -      view = FRAME_NS_VIEW (*fp);
> +      view = FRAME_NS_VIEW (f);

>         position = [[view window] mouseLocationOutsideOfEventStream];
>         position = [view convertPoint: position fromView: nil];

AFAICT, that fixes it even w/o my patch. Thanks!

There's still some weirdness w/ company-childframe, but I believe it's
fixable in that package.

That said, I think my patch is still necessary to prevent a related, but
not very critical issue. Using my original repro but with no-accept-focus
nil:

(progn
   (let ((buffer (get-buffer " *foo*")))
     (when (buffer-live-p buffer)
       (kill-buffer buffer)))
   (let ((buffer (get-buffer-create " *foo*"))
         (after-make-frame-functions nil))
     (with-current-buffer buffer
       (goto-char (point-min))
       (insert "1 This is a test\n2 This is a test\n3 This is a test")
       (delete-region (point) (point-max))

       (setq-local resize-mini-windows nil)
       (setq-local mode-line-format nil)
       (setq-local repro-frame
                   (make-frame
                    `(
                      (minibuffer . nil)
                      )
                    ))
       (let ((win (frame-root-window repro-frame)))
         (set-window-parameter win 'mode-line-format nil)
         (set-window-buffer win buffer)))))

Click in the middle of the window and slowly move the mouse towards the
bottom of the window. As soon as you leave the bottom of the window, it
will scroll two lines, I believe because it has miscalculated the bottom.
If you apply my patch, it will only scroll one line at a time, which seems
to be the normal behavior when the mode-line is present.

I would guess this is reproducible in X as well.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-05-27 21:53                                                         ` Aaron Jensen
@ 2018-06-02  6:35                                                           ` Aaron Jensen
  2018-06-02  8:00                                                             ` Eli Zaretskii
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-06-02  6:35 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

[-- Attachment #1: Type: text/plain, Size: 96 bytes --]

Here is an updated patch which includes Alan's changes. Any concerns with this?

Thanks,

Aaron

[-- Attachment #2: 0001-Prevent-errant-scroll-on-mouse-click-Bug-31546.patch --]
[-- Type: application/octet-stream, Size: 1464 bytes --]

From 02acfa6aa8132d767bf71390b101cd29fd5c1b44 Mon Sep 17 00:00:00 2001
From: Aaron Jensen <aaronjensen@gmail.com>
Date: Thu, 24 May 2018 03:45:03 -0700
Subject: [PATCH] Prevent errant scroll on mouse click (Bug#31546)

* src/nsterm.m (ns_mouse_position): Use correct frame when determining
  mouse position.
* lisp/mouse.el (mouse-drag-track): Only account for mode-line height
  if `mode-line-format' is non-nil.
---
 lisp/mouse.el | 3 ++-
 src/nsterm.m  | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/mouse.el b/lisp/mouse.el
index 95aada9b15..6a45118de0 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1219,7 +1219,8 @@ mouse-drag-track
 	 (bounds (window-edges start-window))
 	 (make-cursor-line-fully-visible nil)
 	 (top (nth 1 bounds))
-	 (bottom (if (window-minibuffer-p start-window)
+	 (bottom (if (or (window-minibuffer-p start-window)
+                         (not mode-line-format))
 		     (nth 3 bounds)
 		   ;; Don't count the mode line.
 		   (1- (nth 3 bounds))))
diff --git a/src/nsterm.m b/src/nsterm.m
index 3c95fedadc..fcbac1733b 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2581,7 +2581,7 @@ so some key presses (TAB) are swallowed by the system.  */
 
   if (f && FRAME_NS_P (f))
     {
-      view = FRAME_NS_VIEW (*fp);
+      view = FRAME_NS_VIEW (f);
 
       position = [[view window] mouseLocationOutsideOfEventStream];
       position = [view convertPoint: position fromView: nil];
-- 
2.17.0


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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-02  6:35                                                           ` Aaron Jensen
@ 2018-06-02  8:00                                                             ` Eli Zaretskii
  2018-06-02 15:41                                                               ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Eli Zaretskii @ 2018-06-02  8:00 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546, alan

> From: Aaron Jensen <aaronjensen@gmail.com>
> Date: Fri, 1 Jun 2018 23:35:09 -0700
> Cc: Eli Zaretskii <eliz@gnu.org>, martin rudalics <rudalics@gmx.at>, 31546@debbugs.gnu.org
> 
> Here is an updated patch which includes Alan's changes. Any concerns with this?

Fine with me, but please put a comment here:

> -	 (bottom (if (window-minibuffer-p start-window)
> +	 (bottom (if (or (window-minibuffer-p start-window)
> +                         (not mode-line-format))   <<<<<<<<<<<<<<<<<<<
>  		     (nth 3 bounds)
>  		   ;; Don't count the mode line.
>  		   (1- (nth 3 bounds))))

explaining that a frequent use case without a mode line is child-frame
windows.

Thanks.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-02  8:00                                                             ` Eli Zaretskii
@ 2018-06-02 15:41                                                               ` Aaron Jensen
  2018-06-14 16:37                                                                 ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-06-02 15:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 31546, Alan Third

[-- Attachment #1: Type: text/plain, Size: 215 bytes --]

On Sat, Jun 2, 2018 at 1:00 AM Eli Zaretskii <eliz@gnu.org> wrote:
> Fine with me, but please put a comment here:
> explaining that a frequent use case without a mode line is child-frame
> windows.

Sure, attached.

[-- Attachment #2: 0001-Prevent-errant-scroll-on-mouse-click-Bug-31546.patch --]
[-- Type: application/octet-stream, Size: 1648 bytes --]

From 054d27c17d5732637f04a3d984fae5d3dc50a2ba Mon Sep 17 00:00:00 2001
From: Aaron Jensen <aaronjensen@gmail.com>
Date: Thu, 24 May 2018 03:45:03 -0700
Subject: [PATCH] Prevent errant scroll on mouse click (Bug#31546)

* src/nsterm.m (ns_mouse_position): Use correct frame when determining
  mouse position.
* lisp/mouse.el (mouse-drag-track): Only account for mode-line height
  if `mode-line-format' is non-nil.
---
 lisp/mouse.el | 6 +++++-
 src/nsterm.m  | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lisp/mouse.el b/lisp/mouse.el
index 95aada9b15..693fc0284f 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1219,7 +1219,11 @@ mouse-drag-track
 	 (bounds (window-edges start-window))
 	 (make-cursor-line-fully-visible nil)
 	 (top (nth 1 bounds))
-	 (bottom (if (window-minibuffer-p start-window)
+	 (bottom (if (or (window-minibuffer-p start-window)
+                         ;; Do not account for the mode line if there
+                         ;; is no mode line, which is common for child
+                         ;; frames.
+                         (not mode-line-format))
 		     (nth 3 bounds)
 		   ;; Don't count the mode line.
 		   (1- (nth 3 bounds))))
diff --git a/src/nsterm.m b/src/nsterm.m
index 3c95fedadc..fcbac1733b 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2581,7 +2581,7 @@ so some key presses (TAB) are swallowed by the system.  */
 
   if (f && FRAME_NS_P (f))
     {
-      view = FRAME_NS_VIEW (*fp);
+      view = FRAME_NS_VIEW (f);
 
       position = [[view window] mouseLocationOutsideOfEventStream];
       position = [view convertPoint: position fromView: nil];
-- 
2.17.0


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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-02 15:41                                                               ` Aaron Jensen
@ 2018-06-14 16:37                                                                 ` Aaron Jensen
  2018-06-14 20:40                                                                   ` Alan Third
  0 siblings, 1 reply; 44+ messages in thread
From: Aaron Jensen @ 2018-06-14 16:37 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 31546, Alan Third

[-- Attachment #1: Type: text/plain, Size: 382 bytes --]

On Sat, Jun 2, 2018 at 8:41 AM Aaron Jensen <aaronjensen@gmail.com> wrote:
>
> On Sat, Jun 2, 2018 at 1:00 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > Fine with me, but please put a comment here:
> > explaining that a frequent use case without a mode line is child-frame
> > windows.
>
> Sure, attached.

Hi all, I just wanted to ping on this one. It should be ready to go.

Thanks!

[-- Attachment #2: 0001-Prevent-errant-scroll-on-mouse-click-Bug-31546.patch --]
[-- Type: application/octet-stream, Size: 1648 bytes --]

From 054d27c17d5732637f04a3d984fae5d3dc50a2ba Mon Sep 17 00:00:00 2001
From: Aaron Jensen <aaronjensen@gmail.com>
Date: Thu, 24 May 2018 03:45:03 -0700
Subject: [PATCH] Prevent errant scroll on mouse click (Bug#31546)

* src/nsterm.m (ns_mouse_position): Use correct frame when determining
  mouse position.
* lisp/mouse.el (mouse-drag-track): Only account for mode-line height
  if `mode-line-format' is non-nil.
---
 lisp/mouse.el | 6 +++++-
 src/nsterm.m  | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lisp/mouse.el b/lisp/mouse.el
index 95aada9b15..693fc0284f 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1219,7 +1219,11 @@ mouse-drag-track
 	 (bounds (window-edges start-window))
 	 (make-cursor-line-fully-visible nil)
 	 (top (nth 1 bounds))
-	 (bottom (if (window-minibuffer-p start-window)
+	 (bottom (if (or (window-minibuffer-p start-window)
+                         ;; Do not account for the mode line if there
+                         ;; is no mode line, which is common for child
+                         ;; frames.
+                         (not mode-line-format))
 		     (nth 3 bounds)
 		   ;; Don't count the mode line.
 		   (1- (nth 3 bounds))))
diff --git a/src/nsterm.m b/src/nsterm.m
index 3c95fedadc..fcbac1733b 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2581,7 +2581,7 @@ so some key presses (TAB) are swallowed by the system.  */
 
   if (f && FRAME_NS_P (f))
     {
-      view = FRAME_NS_VIEW (*fp);
+      view = FRAME_NS_VIEW (f);
 
       position = [[view window] mouseLocationOutsideOfEventStream];
       position = [view convertPoint: position fromView: nil];
-- 
2.17.0


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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-14 16:37                                                                 ` Aaron Jensen
@ 2018-06-14 20:40                                                                   ` Alan Third
  2018-06-14 21:21                                                                     ` Aaron Jensen
  2018-06-15  7:02                                                                     ` Eli Zaretskii
  0 siblings, 2 replies; 44+ messages in thread
From: Alan Third @ 2018-06-14 20:40 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: 31546

On Thu, Jun 14, 2018 at 09:37:42AM -0700, Aaron Jensen wrote:
> On Sat, Jun 2, 2018 at 8:41 AM Aaron Jensen <aaronjensen@gmail.com> wrote:
> >
> > On Sat, Jun 2, 2018 at 1:00 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > > Fine with me, but please put a comment here:
> > > explaining that a frequent use case without a mode line is child-frame
> > > windows.
> >
> > Sure, attached.
> 
> Hi all, I just wanted to ping on this one. It should be ready to go.

This is for emacs 26.2, right?
-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-14 20:40                                                                   ` Alan Third
@ 2018-06-14 21:21                                                                     ` Aaron Jensen
  2018-06-15  7:02                                                                     ` Eli Zaretskii
  1 sibling, 0 replies; 44+ messages in thread
From: Aaron Jensen @ 2018-06-14 21:21 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546

[-- Attachment #1: Type: text/plain, Size: 627 bytes --]

Ideally yes.
On Thu, Jun 14, 2018 at 1:40 PM Alan Third <alan@idiocy.org> wrote:

> On Thu, Jun 14, 2018 at 09:37:42AM -0700, Aaron Jensen wrote:
> > On Sat, Jun 2, 2018 at 8:41 AM Aaron Jensen <aaronjensen@gmail.com>
> wrote:
> > >
> > > On Sat, Jun 2, 2018 at 1:00 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > > > Fine with me, but please put a comment here:
> > > > explaining that a frequent use case without a mode line is
> child-frame
> > > > windows.
> > >
> > > Sure, attached.
> >
> > Hi all, I just wanted to ping on this one. It should be ready to go.
>
> This is for emacs 26.2, right?
> --
> Alan Third
>
-- 
Aaron

[-- Attachment #2: Type: text/html, Size: 1169 bytes --]

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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-14 20:40                                                                   ` Alan Third
  2018-06-14 21:21                                                                     ` Aaron Jensen
@ 2018-06-15  7:02                                                                     ` Eli Zaretskii
  2018-06-17 11:08                                                                       ` Alan Third
  1 sibling, 1 reply; 44+ messages in thread
From: Eli Zaretskii @ 2018-06-15  7:02 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546, aaronjensen

> Date: Thu, 14 Jun 2018 21:40:16 +0100
> From: Alan Third <alan@idiocy.org>
> Cc: Eli Zaretskii <eliz@gnu.org>, martin rudalics <rudalics@gmx.at>,
> 	31546@debbugs.gnu.org
> 
> On Thu, Jun 14, 2018 at 09:37:42AM -0700, Aaron Jensen wrote:
> > On Sat, Jun 2, 2018 at 8:41 AM Aaron Jensen <aaronjensen@gmail.com> wrote:
> > >
> > > On Sat, Jun 2, 2018 at 1:00 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > > > Fine with me, but please put a comment here:
> > > > explaining that a frequent use case without a mode line is child-frame
> > > > windows.
> > >
> > > Sure, attached.
> > 
> > Hi all, I just wanted to ping on this one. It should be ready to go.
> 
> This is for emacs 26.2, right?

Yes, please.





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-15  7:02                                                                     ` Eli Zaretskii
@ 2018-06-17 11:08                                                                       ` Alan Third
  2018-06-17 12:03                                                                         ` Aaron Jensen
  0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2018-06-17 11:08 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 31546-done, aaronjensen

On Fri, Jun 15, 2018 at 10:02:33AM +0300, Eli Zaretskii wrote:
> > Date: Thu, 14 Jun 2018 21:40:16 +0100
> > From: Alan Third <alan@idiocy.org>
> > Cc: Eli Zaretskii <eliz@gnu.org>, martin rudalics <rudalics@gmx.at>,
> > 	31546@debbugs.gnu.org
> > 
> > On Thu, Jun 14, 2018 at 09:37:42AM -0700, Aaron Jensen wrote:
> > > On Sat, Jun 2, 2018 at 8:41 AM Aaron Jensen <aaronjensen@gmail.com> wrote:
> > > >
> > > > On Sat, Jun 2, 2018 at 1:00 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > > > > Fine with me, but please put a comment here:
> > > > > explaining that a frequent use case without a mode line is child-frame
> > > > > windows.
> > > >
> > > > Sure, attached.
> > > 
> > > Hi all, I just wanted to ping on this one. It should be ready to go.
> > 
> > This is for emacs 26.2, right?
> 
> Yes, please.

Pushed to emacs-26.
-- 
Alan Third





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

* bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem
  2018-06-17 11:08                                                                       ` Alan Third
@ 2018-06-17 12:03                                                                         ` Aaron Jensen
  0 siblings, 0 replies; 44+ messages in thread
From: Aaron Jensen @ 2018-06-17 12:03 UTC (permalink / raw)
  To: Alan Third; +Cc: 31546-done

On Sun, Jun 17, 2018 at 4:08 AM Alan Third <alan@idiocy.org> wrote:
> Pushed to emacs-26.

Thank you!





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

end of thread, other threads:[~2018-06-17 12:03 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-22  5:23 bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem Aaron Jensen
2018-05-22  7:25 ` martin rudalics
2018-05-22  7:33   ` Aaron Jensen
2018-05-22  8:40     ` martin rudalics
2018-05-22 12:51       ` Aaron Jensen
2018-05-22 19:33         ` Alan Third
2018-05-22 19:36           ` Aaron Jensen
2018-05-22 19:44             ` Alan Third
2018-05-22 19:51               ` Aaron Jensen
2018-05-23  6:36                 ` martin rudalics
2018-05-23 11:14                   ` Aaron Jensen
2018-05-23 21:31                     ` Alan Third
2018-05-23 22:21                       ` Aaron Jensen
2018-05-24  7:19                         ` martin rudalics
2018-05-24 10:53                           ` Aaron Jensen
2018-05-24 11:06                             ` Aaron Jensen
2018-05-24 15:28                               ` Eli Zaretskii
2018-05-24 15:58                                 ` Aaron Jensen
2018-05-25  6:34                                   ` martin rudalics
2018-05-26 16:38                                   ` Alan Third
2018-05-26 17:02                                     ` Aaron Jensen
2018-05-26 18:22                                       ` Alan Third
2018-05-26 20:15                                         ` Aaron Jensen
2018-05-27  6:22                                           ` martin rudalics
2018-05-27 15:57                                             ` Eli Zaretskii
2018-05-27 17:13                                               ` Aaron Jensen
2018-05-27 17:38                                                 ` Eli Zaretskii
2018-05-27 17:52                                                   ` Aaron Jensen
2018-05-27 18:52                                                     ` Aaron Jensen
2018-05-27 21:24                                                       ` Alan Third
2018-05-27 21:53                                                         ` Aaron Jensen
2018-06-02  6:35                                                           ` Aaron Jensen
2018-06-02  8:00                                                             ` Eli Zaretskii
2018-06-02 15:41                                                               ` Aaron Jensen
2018-06-14 16:37                                                                 ` Aaron Jensen
2018-06-14 20:40                                                                   ` Alan Third
2018-06-14 21:21                                                                     ` Aaron Jensen
2018-06-15  7:02                                                                     ` Eli Zaretskii
2018-06-17 11:08                                                                       ` Alan Third
2018-06-17 12:03                                                                         ` Aaron Jensen
2018-05-24 15:27                             ` Eli Zaretskii
2018-05-24  7:19                     ` martin rudalics
2018-05-23  6:36             ` martin rudalics
2018-05-23  6:36           ` martin rudalics

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).