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