GNU bug report logs - #46155
28.0.50; Regression: buffer contents flicker on macOS frames when

Previous Next

Package: emacs;

Reported by: Aaron Jensen <aaronjensen <at> gmail.com>

Date: Thu, 28 Jan 2021 15:49:01 UTC

Severity: normal

Found in version 28.0.50

Done: Alan Third <alan <at> idiocy.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 46155 in the body.
You can then email your comments to 46155 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Thu, 28 Jan 2021 15:49:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Aaron Jensen <aaronjensen <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 28 Jan 2021 15:49:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Cc: Alan Third <alan <at> idiocy.org>
Subject: 28.0.50; Regression: buffer contents flicker on macOS frames when
Date: Thu, 28 Jan 2021 09:48:25 -0600
From emacs -Q:

(dotimes (n 10)
  (set-frame-parameter nil 'width (+ 80 n))
  (sit-for 0.1))

This was previously fixed in bug#30699

I don't know if it was reverted at some point and I didn't notice, or it
was started flickering again after Alan's recent (fantastic) performance
improvements.

This reproduces on master (non-native-comp) as of ac102bb966 as well.


In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin19.6.0, NS
appkit-1894.60 Version 10.15.7 (Build 19H114))
 of 2021-01-24 built on aaron-sub.local
Repository revision: 0ffb3dfaa483b0c5cf1f7f367efcb5e9c041ab53
Repository branch: feature/native-comp
Windowing system distributor 'Apple', version 10.3.1894
System Description:  Mac OS X 10.15.7

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus <at> 28/28.0.50 --with-xml2
 --with-gnutls --with-nativecomp --without-dbus --with-imagemagick
 --with-modules --with-rsvg --with-ns --disable-ns-self-contained
 'CFLAGS=-I/usr/local/opt/gcc/include -I/usr/local/opt/libgccjit/include
 -I/usr/local/opt/gmp/include -I/usr/local/opt/jpeg/include'
 'LDFLAGS=-L/usr/local/lib/gcc/10 -I/usr/local/opt/gcc/include
 -I/usr/local/opt/libgccjit/include -I/usr/local/opt/gmp/include
 -I/usr/local/opt/jpeg/include''

Configured features:
ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES
NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF
TOOLKIT_SCROLL_BARS ZLIB

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

Major mode: EnhRuby

Minor modes in effect:
  evil-ruby-text-objects-mode: t
  rspec-verifiable-mode: t
  ruby-refactor-mode: t
  inf-ruby-minor-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  company-posframe-mode: t
  company-prescient-mode: t
  company-tng-mode: t
  company-mode: t
  eval-sexp-fu-flash-mode: t
  dtrt-indent-mode: t
  global-git-commit-mode: t
  transient-posframe-mode: t
  projectile-mode: t
  persp-mode: t
  global-auto-revert-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  which-key-posframe-mode: t
  which-key-mode: t
  winner-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  global-evil-mc-mode: t
  evil-mc-mode: t
  global-evil-matchit-mode: t
  evil-matchit-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  evil-mode: t
  evil-local-mode: t
  ivy-rich-mode: t
  ivy-prescient-mode: t
  counsel-mode: t
  ivy-posframe-mode: t
  ivy-mode: t
  envrc-global-mode: t
  envrc-mode: t
  doom-modeline-mode: t
  recentf-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  org-roam-mode: t
  shell-dirtrack-mode: t
  gcmh-mode: t
  prescient-persist-mode: t
  +popup-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  save-place-mode: t
  ns-auto-titlebar-mode: t
  leader-key-leader-override-mode: t
  global-leader-key-leader-override-mode: t
  delete-selection-mode: t
  savehist-mode: t
  xterm-mouse-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  auto-fill-function: yas--auto-fill
  transient-mark-mode: t
  abbrev-mode: t

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

Features:
(restart-emacs desktop frameset cua-base speeddating tramp-cache
prettier nvm iter2 evil-collection-helpful helpful trace info-look
elisp-refs cl-print cal-move hl-line deft company-rg evil-matchit-ruby
evil-matchit-simple conf-mode wdired macros sort sql json-mode
json-reformat json-snatcher smartparens-javascript js smartparens-c
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs lsp-steep lsp-svelte lsp-sqls lsp-yaml lsp-xml
lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala
lsp-terraform lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-r
lsp-purescript lsp-pyls lsp-pwsh lsp-php lsp-perl lsp-ocaml lsp-nix
lsp-nim lsp-lua lsp-kotlin lsp-json lsp-javascript lsp-haxe lsp-groovy
lsp-hack lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran
lsp-eslint lsp-erlang lsp-elixir lsp-elm lsp-dockerfile lsp-dhall
lsp-css lsp-csharp lsp-crystal lsp-cmake lsp-clojure lsp-clangd lsp-bash
lsp-angular lsp-ada lsp-actionscript lsp-mode lsp-protocol spinner
network-stream inline ht dash-functional bindat smartparens-lua lua-mode
org-gcal persist org-clock org-archive request-deferred deferred request
alert log4e notifications gntp timezone vterm-toggle
evil-collection-vterm vterm term disp-table ehelp vterm-module tramp-sh
hippie-exp magit-extras magit-patch magit-subtree magit-ediff goto-addr
view org-journal org-crypt cal-iso wgrep bug-reference
evil-nerd-commenter evil-nerd-commenter-operator evil-nerd-commenter-sdk
smartparens-html sgml-mode xterm-color evil-collection-magit
magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit package url-handlers magit-repos magit-apply
magit-wip magit-log which-func imenu magit-diff smerge-mode magit-core
magit-autorevert magit-margin magit-transient magit-process magit-mode
smartparens-markdown markdown-mode dired-aux shortdoc
evil-ruby-text-objects rspec-mode ruby-refactor bundler inf-ruby
smartparens-ruby ruby-mode enh-ruby-mode face-remap ffap tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp
bookmark appt diary-lib diary-loaddefs org-duration org-agenda flycheck
benchmark shadow emacsbug company-oddmuse company-keywords company-etags
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-capf company-cmake company-semantic
company-template company-bbdb company-posframe company-prescient
company-tng company paren eval-sexp-fu eros lispyville lispy
lispy-inline etags fileloop evil-collection-edebug edebug help-fns
lispy-tags ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help
ediff-init ediff-util iedit iedit-lib elisp-def ert ewoc
evil-collection-debug debug backtrace sotlisp skeleton dtrt-indent
git-commit with-editor transient-posframe transient magit-git
magit-section magit-utils crm log-edit pcvs-util add-log vc-mtn vc-hg
vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc
vc-dispatcher orgonomic hide-mode-line popup-mode-core persp-projectile
counsel-projectile projectile grep ibuf-ext evil-collection-ibuffer
ibuffer ibuffer-loaddefs perspective ido autorevert filenotify yasnippet
popup-mode-hacks evil-collection-which-key which-key-posframe which-key
winner better-jumper smartparens-config smartparens-org smartparens-text
smartparens evil-org-agenda evil-org evil-anzu anzu
evil-collection-unimpaired evil-collection-xref evil-collection-help
evil-collection-dired evil-collection-custom cus-edit cus-start cus-load
evil-collection-process-menu evil-collection annalist 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 evil-numbers evil-matchit
evil-matchit-sdk evil-surround evil evil-integration 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 rect evil-digraphs evil-vars sendmail
mail-extr epa-file ivy-xref ivy-rich ivy-prescient counsel compile
swiper ivy-posframe posframe ivy ivy-faces ivy-overlay colir color
dumb-jump xref project popup semantic/ia semantic/analyze/refs
semantic/db-find semantic/db-ref semantic/senator semantic/decorate
pulse semantic/analyze semantic/sort semantic/scope semantic/db
eieio-base semantic/analyze/fcn semantic/ctxt semantic/format
semantic/tag-ls semantic/find semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet ace-window avy
sh-script smie executable tabify form-feed ol-eww eww xdg url-queue
thingatpt mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu mml2015
mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom browse-url
gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
message rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader gnus-win gnus nnheader
gnus-util rmail rmail-loaddefs text-property-search mail-utils
ol-docview doc-view jka-compr image-mode exif dired dired-loaddefs
ol-bibtex bibtex iso8601 ol-bbdb ol-w3m envrc doom-modeline
doom-modeline-segments let-alist doom-modeline-env doom-modeline-core
shrink-path all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons recentf tree-widget wid-edit undo-tree diff
display-line-numbers org-roam org-roam-link org-roam-graph xml
org-roam-doctor org-roam-dailies org-roam-capture org-roam-db
emacsql-sqlite3 emacsql emacsql-compiler org-roam-completion
org-roam-buffer org-roam-faces org-roam-macs org-roam-compat f s dash
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-ascii ox-gfm ox-md ox-html table ox-publish ox org-download
org-element avl-tree generator org-attach org-id async org-protocol
org-capture org-refile org-tempo tempo org-mac-link ob-shell shell org
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote
org-src ob-comint org-pcomplete pcomplete comint ansi-color org-list
org-faces org-entities time-date noutline outline org-version
ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs
org-loaddefs format-spec advice find-func cal-menu calendar cal-loaddefs
gcmh server modus-operandi-theme modus-themes gcmh-autoloads
explain-pause-mode-autoloads restclient-autoloads vterm-toggle-autoloads
vterm-autoloads dumb-jump-autoloads popup-autoloads
xterm-color-autoloads dockerfile-mode-autoloads yaml-mode-autoloads
json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads
lua-mode-autoloads bundler-autoloads inf-ruby-autoloads
ruby-refactor-autoloads rspec-mode-autoloads
evil-ruby-text-objects-autoloads enh-ruby-mode-autoloads
sotlisp-autoloads elisp-def-autoloads lispyville-autoloads
lispy-autoloads zoutline-autoloads iedit-autoloads eros-autoloads
eval-sexp-fu-autoloads eslintd-fix-autoloads web-mode-autoloads
company-rg-autoloads autoload radix-tree lisp-mnt company-lsp-autoloads
company-posframe-autoloads company-prescient-autoloads company-autoloads
git-link-autoloads prettier-autoloads nvm-autoloads iter2-autoloads
flycheck-autoloads let-alist-autoloads lsp-ui-autoloads
lsp-mode-autoloads markdown-mode-autoloads spinner-autoloads
ox-gfm-autoloads org-pandoc-import-autoloads gnuplot-autoloads
org-download-autoloads async-autoloads org-journal-autoloads
org-gcal-autoloads alert-autoloads log4e-autoloads gntp-autoloads
request-deferred-autoloads deferred-autoloads request-autoloads
deft-autoloads org-roam-autoloads emacsql-sqlite3-autoloads
emacsql-autoloads orgonomic-autoloads org-drill-autoloads
persist-autoloads evil-org-autoloads transient-posframe-autoloads
restart-emacs-autoloads better-jumper-autoloads hydra ring lv
buffer-move-autoloads ivy-rich-autoloads ivy-xref-autoloads
wgrep-autoloads ivy-posframe-autoloads ivy-prescient-autoloads
persp-projectile-autoloads prescient prescient-autoloads
which-key-posframe-autoloads which-key-autoloads popup-mode
popup-mode-settings popup-mode-autoloads hide-mode-line-autoloads
yasnippet-autoloads form-feed-autoloads drag-stuff-autoloads
smartparens-autoloads dtrt-indent-autoloads ws-butler
ws-butler-autoloads evil-anzu-autoloads anzu-autoloads
evil-collection-autoloads annalist-autoloads evil-mc-autoloads
evil-numbers-autoloads speeddating-autoloads evil-matchit-autoloads
evil-nerd-commenter-autoloads evil-visualstar-autoloads
evil-surround-autoloads pp undo-tree-autoloads
treemacs-perspective-autoloads perspective-autoloads
treemacs-magit-autoloads magit-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads
treemacs-all-the-icons-autoloads treemacs-projectile-autoloads
treemacs-evil-autoloads evil-autoloads goto-chg-autoloads
treemacs-autoloads cfrs-autoloads ht-autoloads pfuture-autoloads
ace-window-autoloads avy-autoloads counsel-projectile-autoloads
counsel-autoloads swiper-autoloads ivy-autoloads projectile-autoloads
pkg-info-autoloads epl-autoloads saveplace rainbow-mode-autoloads
posframe-autoloads ns-auto-titlebar ns-auto-titlebar-autoloads
doom-modeline-autoloads shrink-path-autoloads all-the-icons-autoloads
modus-themes-autoloads envrc-autoloads compdef derived compdef-autoloads
helpful-autoloads elisp-refs-autoloads f-autoloads s-autoloads
dash-functional-autoloads dired-subtree-autoloads
dired-hacks-utils-autoloads dash-autoloads use-package-bind-key
hydra-autoloads lv-autoloads leader-key bind-map leader-key-autoloads
bind-map-autoloads delsel savehist xt-mouse edmacro kmacro no-littering
no-littering-autoloads finder-inf bind-key easy-mmode use-package-core
use-package-autoloads bind-key-autoloads straight-autoloads info
straight url-http url url-proxy url-privacy url-expand url-methods
url-history mailcap url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr url-cookie url-domsuf url-util url-gw url-parse
auth-source eieio eieio-core eieio-loaddefs password-cache json url-vars
nsm map rmc gnutls puny comp comp-cstr warnings subr-x rx cl-seq cl-macs
cl-extra help-mode easymenu seq byte-opt gv cl-loaddefs cl-lib bytecomp
byte-compile cconv iso-transl 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 tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face pcase macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process nativecomp emacs)

Memory information:
((conses 16 1342289 377635)
 (symbols 48 81207 1)
 (strings 32 275499 39616)
 (string-bytes 1 11307380)
 (vectors 16 112481)
 (vector-slots 8 2217134 202073)
 (floats 8 1803 866)
 (intervals 56 9111 1024)
 (buffers 984 23))


Aaron




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Thu, 28 Jan 2021 16:40:02 GMT) Full text and rfc822 format available.

Message #8 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 46155 <at> debbugs.gnu.org
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Thu, 28 Jan 2021 16:39:49 +0000
On Thu, Jan 28, 2021 at 09:48:25AM -0600, Aaron Jensen wrote:
> From emacs -Q:
> 
> (dotimes (n 10)
>   (set-frame-parameter nil 'width (+ 80 n))
>   (sit-for 0.1))
> 
> This was previously fixed in bug#30699
> 
> I don't know if it was reverted at some point and I didn't notice, or it
> was started flickering again after Alan's recent (fantastic) performance
> improvements.
> 
> This reproduces on master (non-native-comp) as of ac102bb966 as well.

Apple deprecated the functions we were using to block screen drawing.

It's possible we can have a neater work-around now since we're drawing
to an offscreen buffer and therefore have greater control over what's
displayed. I'll have to look into it again.
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Sun, 31 Jan 2021 20:29:01 GMT) Full text and rfc822 format available.

Message #11 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>, 46155 <at> debbugs.gnu.org
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Sun, 31 Jan 2021 20:28:21 +0000
[Message part 1 (text/plain, inline)]
On Thu, Jan 28, 2021 at 04:39:49PM +0000, Alan Third wrote:
> On Thu, Jan 28, 2021 at 09:48:25AM -0600, Aaron Jensen wrote:
> > From emacs -Q:
> > 
> > (dotimes (n 10)
> >   (set-frame-parameter nil 'width (+ 80 n))
> >   (sit-for 0.1))
> > 
> > This was previously fixed in bug#30699
> > 
> > I don't know if it was reverted at some point and I didn't notice, or it
> > was started flickering again after Alan's recent (fantastic) performance
> > improvements.
> > 
> > This reproduces on master (non-native-comp) as of ac102bb966 as well.
> 
> Apple deprecated the functions we were using to block screen drawing.
> 
> It's possible we can have a neater work-around now since we're drawing
> to an offscreen buffer and therefore have greater control over what's
> displayed. I'll have to look into it again.

Well... I tried something ridiculous and it appears to work...

I suspect forcing redisplay this way within the NS run loop is bad
form, but it appears to work.
-- 
Alan Third
[0001-Fix-flicker-when-resizing-NS-frame-programmatically-.patch (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Sun, 31 Jan 2021 22:07:01 GMT) Full text and rfc822 format available.

Message #14 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Alan Third <alan <at> idiocy.org>, Aaron Jensen <aaronjensen <at> gmail.com>,
 46155 <at> debbugs.gnu.org
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Sun, 31 Jan 2021 16:05:53 -0600
On Sun, Jan 31, 2021 at 2:28 PM Alan Third <alan <at> idiocy.org> wrote:
>
> On Thu, Jan 28, 2021 at 04:39:49PM +0000, Alan Third wrote:
> > On Thu, Jan 28, 2021 at 09:48:25AM -0600, Aaron Jensen wrote:
> > > From emacs -Q:
> > >
> > > (dotimes (n 10)
> > >   (set-frame-parameter nil 'width (+ 80 n))
> > >   (sit-for 0.1))
> > >
> > > This was previously fixed in bug#30699
> > >
> > > I don't know if it was reverted at some point and I didn't notice, or it
> > > was started flickering again after Alan's recent (fantastic) performance
> > > improvements.
> > >
> > > This reproduces on master (non-native-comp) as of ac102bb966 as well.
> >
> > Apple deprecated the functions we were using to block screen drawing.
> >
> > It's possible we can have a neater work-around now since we're drawing
> > to an offscreen buffer and therefore have greater control over what's
> > displayed. I'll have to look into it again.
>
> Well... I tried something ridiculous and it appears to work...
>
> I suspect forcing redisplay this way within the NS run loop is bad
> form, but it appears to work.

Awesome, it works for me. It also fixes an issue I've had when
launching Emacs and resizing it and it remaining blank for an extended
period of time (probably while it's busy, but it's still rather
unsightly)

I'll give it a shot for a while and report back.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Mon, 08 Feb 2021 15:26:02 GMT) Full text and rfc822 format available.

Message #17 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Alan Third <alan <at> idiocy.org>, Aaron Jensen <aaronjensen <at> gmail.com>,
 46155 <at> debbugs.gnu.org
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Mon, 8 Feb 2021 09:25:13 -0600
On Sun, Jan 31, 2021 at 4:05 PM Aaron Jensen <aaronjensen <at> gmail.com> wrote:

> I'll give it a shot for a while and report back.

No problems with this, as far as I can tell.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Mon, 08 Feb 2021 21:47:02 GMT) Full text and rfc822 format available.

Message #20 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Alan Third <alan <at> idiocy.org>, Aaron Jensen <aaronjensen <at> gmail.com>,
 46155 <at> debbugs.gnu.org, andreyk.mad <at> gmail.com
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Mon, 8 Feb 2021 15:45:48 -0600
On Mon, Feb 8, 2021 at 9:25 AM Aaron Jensen <aaronjensen <at> gmail.com> wrote:
>
> On Sun, Jan 31, 2021 at 4:05 PM Aaron Jensen <aaronjensen <at> gmail.com> wrote:
>
> > I'll give it a shot for a while and report back.
>
> No problems with this, as far as I can tell.

Mini frame only buffers still flicker on resize, see
https://github.com/muffinmad/emacs-mini-frame/issues/31

Repro (thanks to Andrii Kolomoiets):

emacs -Q
M-: (setq resize-mini-frames t)
M-: (make-frame '((minibuffer . only)))
M-x
Type random letters




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 07:59:02 GMT) Full text and rfc822 format available.

Message #23 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Aaron Jensen <aaronjensen <at> gmail.com>, Alan Third <alan <at> idiocy.org>,
 46155 <at> debbugs.gnu.org, andreyk.mad <at> gmail.com
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 08:58:28 +0100
> Mini frame only buffers still flicker on resize, see
> https://github.com/muffinmad/emacs-mini-frame/issues/31
>
> Repro (thanks to Andrii Kolomoiets):
>
> emacs -Q
> M-: (setq resize-mini-frames t)
> M-: (make-frame '((minibuffer . only)))
> M-x
> Type random letters

Where do you type those letters?  Into the normal frame?

I suppose 'fit-frame-to-buffer' is to blame here.  What happens when you
set 'resize-mini-frames' to 'ignore?  Some other function that resizes
the frame more conservatively or sporadically?

martin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 09:56:02 GMT) Full text and rfc822 format available.

Message #26 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Andrii Kolomoiets <andreyk.mad <at> gmail.com>
To: martin rudalics <rudalics <at> gmx.at>
Cc: Alan Third <alan <at> idiocy.org>, 46155 <at> debbugs.gnu.org,
 Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on
 macOS frames when
Date: Tue, 09 Feb 2021 11:55:20 +0200
martin rudalics <rudalics <at> gmx.at> writes:

>> emacs -Q
>> M-: (setq resize-mini-frames t)
>> M-: (make-frame '((minibuffer . only)))
>> M-x
>> Type random letters
>
> Where do you type those letters?  Into the normal frame?

No, into the minibuffer-only frame.  After `make-frame` the
minibuffer-only frame became focused and accept input.

> I suppose 'fit-frame-to-buffer' is to blame here.  What happens when
> you set 'resize-mini-frames' to 'ignore?

The minibuffer-only frame doesn't resized and the text is not flicker.

> Some other function that resizes the frame more conservatively or
> sporadically?

I've set the `resize-mini-frames` to this function:

    (defun test/resize (frame)
      (modify-frame-parameters
       frame `((width . ,(+ 80 (random 20))))))

After each letter typed, the minibuffer-only frame is resized several
times.  The text is not visible during resize.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 10:51:01 GMT) Full text and rfc822 format available.

Message #29 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Cc: Alan Third <alan <at> idiocy.org>, 46155 <at> debbugs.gnu.org,
 Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 11:49:55 +0100
>> Where do you type those letters?  Into the normal frame?
>
> No, into the minibuffer-only frame.  After `make-frame` the
> minibuffer-only frame became focused and accept input.

Works here on Debian without problems, the minibuffer-only frame expands
by one character as expected.  I still doubt that this is an NS problem.

>> Some other function that resizes the frame more conservatively or
>> sporadically?
>
> I've set the `resize-mini-frames` to this function:
>
>      (defun test/resize (frame)
>        (modify-frame-parameters
>         frame `((width . ,(+ 80 (random 20))))))
>
> After each letter typed, the minibuffer-only frame is resized several
> times.  The text is not visible during resize.

Can you try with a function that explicitly keeps the height constant -
i.e., calls 'fit-frame-to-buffer' with ONLY set to 'horizontally'.

martin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 11:05:01 GMT) Full text and rfc822 format available.

Message #32 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Cc: Alan Third <alan <at> idiocy.org>, 46155 <at> debbugs.gnu.org,
 Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 12:04:09 +0100
>  >      (defun test/resize (frame)
>  >        (modify-frame-parameters
>  >         frame `((width . ,(+ 80 (random 20))))))
>  >
>  > After each letter typed, the minibuffer-only frame is resized several
>  > times.  The text is not visible during resize.
>
> Can you try with a function that explicitly keeps the height constant -
> i.e., calls 'fit-frame-to-buffer' with ONLY set to 'horizontally'.

But I see that 'test/resize' does that already.  Is that function called
more than once each time you type a letter?

martin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 11:06:02 GMT) Full text and rfc822 format available.

Message #35 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: martin rudalics <rudalics <at> gmx.at>
Cc: 46155 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com>,
 Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 11:05:08 +0000
On Tue, Feb 09, 2021 at 11:49:55AM +0100, martin rudalics wrote:
> >> Where do you type those letters?  Into the normal frame?
> >
> > No, into the minibuffer-only frame.  After `make-frame` the
> > minibuffer-only frame became focused and accept input.
> 
> Works here on Debian without problems, the minibuffer-only frame expands
> by one character as expected.  I still doubt that this is an NS problem.

In case it matters, the background here is that after a resize Cocoa
doesn't retain the contents of the frame, but since the frame is
garbaged Emacs won't draw anything until redisplay is completed, but
Cocoa won't wait for redisplay, so we end up with a brief blank frame.

The patch Aaron and Andrii are using calls redisplay() just before the
frame is drawn, but only if it is garbaged.

My assumption is that something in this repro recipe is causing
redisplay to refuse to draw the frame until something else has
occurred. I've no idea what that could be and haven't investigated
yet.
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 11:32:02 GMT) Full text and rfc822 format available.

Message #38 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Andrii Kolomoiets <andreyk.mad <at> gmail.com>
To: martin rudalics <rudalics <at> gmx.at>
Cc: Alan Third <alan <at> idiocy.org>, 46155 <at> debbugs.gnu.org,
 Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on
 macOS frames when
Date: Tue, 09 Feb 2021 13:30:52 +0200
martin rudalics <rudalics <at> gmx.at> writes:

>>  >      (defun test/resize (frame)
>>  >        (modify-frame-parameters
>>  >         frame `((width . ,(+ 80 (random 20))))))
>>  >
>>  > After each letter typed, the minibuffer-only frame is resized several
>>  > times.  The text is not visible during resize.
>>
>> Can you try with a function that explicitly keeps the height constant -
>> i.e., calls 'fit-frame-to-buffer' with ONLY set to 'horizontally'.
>
> But I see that 'test/resize' does that already.  Is that function called
> more than once each time you type a letter?

Yes.  Almost each time I type or delete a letter.  Same on recent master
version under X (Gnome).  After typing C-g that function is called even
more times.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 14:46:02 GMT) Full text and rfc822 format available.

Message #41 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: martin rudalics <rudalics <at> gmx.at>,
 Andrii Kolomoiets <andreyk.mad <at> gmail.com>,
 Aaron Jensen <aaronjensen <at> gmail.com>, 46155 <at> debbugs.gnu.org
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 14:44:59 +0000
On Tue, Feb 09, 2021 at 11:05:08AM +0000, Alan Third wrote:
> 
> The patch Aaron and Andrii are using calls redisplay() just before the
> frame is drawn, but only if it is garbaged.

I see from a subsequent email that Andrii isn't using the NS port, so
that bit of my message is wrong.
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 16:30:02 GMT) Full text and rfc822 format available.

Message #44 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Andrii Kolomoiets <andreyk.mad <at> gmail.com>
To: Alan Third <alan <at> idiocy.org>
Cc: martin rudalics <rudalics <at> gmx.at>, 46155 <at> debbugs.gnu.org,
 Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on
 macOS frames when
Date: Tue, 09 Feb 2021 18:29:22 +0200
Alan Third <alan <at> idiocy.org> writes:

> On Tue, Feb 09, 2021 at 11:05:08AM +0000, Alan Third wrote:
>> 
>> The patch Aaron and Andrii are using calls redisplay() just before the
>> frame is drawn, but only if it is garbaged.
>
> I see from a subsequent email that Andrii isn't using the NS port, so
> that bit of my message is wrong.

Sorry for kind of misleading you.  I indeed use NS port. The receipt for
minibuffer-only frame flickering was made on nearly recent master
version with your patch applied.  (I must say resizing and fullscreen
transition looks awesome now, thanks!)

I used GTK port under X in the VirtualBox to test the issue with the
minibuffer-only frame resized more than once even if the text is not
changed.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 17:32:01 GMT) Full text and rfc822 format available.

Message #47 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Cc: Alan Third <alan <at> idiocy.org>, 46155 <at> debbugs.gnu.org,
 Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 18:31:03 +0100
>> But I see that 'test/resize' does that already.  Is that function called
>> more than once each time you type a letter?
>
> Yes.  Almost each time I type or delete a letter.  Same on recent master
> version under X (Gnome).  After typing C-g that function is called even
> more times.

Hmmm ... When I load with emacs -Q


(setq default-frame-alist '((minibuffer . nil)))

(setq frame-size-history '(100))

(defvar foo 0)

(defun foo (frame)
  (setq foo (1+ foo))
  (fit-frame-to-buffer frame))

(setq resize-mini-frames 'foo)


and leave Emacs alone for a while, 'foo' has increased by about 30 (I'd
attribute 20 of them to 'blink-cursor-mode').  So 'fit-frame-to-buffer'
apparently does get called way too often.  But if I now evaluate

(frame--size-history (window-frame (minibuffer-window)))

and look into the *frame-size-history* buffer, I see no excessive number
of calls to resize the frame's window here.  Maybe things are different
under Gnome or NS.

martin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Tue, 09 Feb 2021 20:09:01 GMT) Full text and rfc822 format available.

Message #50 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Cc: 46155 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 20:08:02 +0000
On Tue, Feb 09, 2021 at 06:29:22PM +0200, Andrii Kolomoiets wrote:
> Alan Third <alan <at> idiocy.org> writes:
> 
> > On Tue, Feb 09, 2021 at 11:05:08AM +0000, Alan Third wrote:
> >> 
> >> The patch Aaron and Andrii are using calls redisplay() just before the
> >> frame is drawn, but only if it is garbaged.
> >
> > I see from a subsequent email that Andrii isn't using the NS port, so
> > that bit of my message is wrong.
> 
> Sorry for kind of misleading you.  I indeed use NS port. The receipt for
> minibuffer-only frame flickering was made on nearly recent master
> version with your patch applied.  (I must say resizing and fullscreen
> transition looks awesome now, thanks!)
> 
> I used GTK port under X in the VirtualBox to test the issue with the
> minibuffer-only frame resized more than once even if the text is not
> changed.

Ah, OK. I guess it probably is exclusive to NS then.

The obvious solution IMO is to retain a copy of the old frame contents
and draw them in after resizing, before we try calling redisplay().

On the other hand, it would be nice to know why redisplay() isn't
drawing anything...
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Wed, 10 Feb 2021 01:13:01 GMT) Full text and rfc822 format available.

Message #53 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Alan Third <alan <at> idiocy.org>, Andrii Kolomoiets <andreyk.mad <at> gmail.com>,
 46155 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com>
Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS
 frames when
Date: Tue, 9 Feb 2021 19:11:58 -0600
On Tue, Feb 9, 2021 at 2:08 PM Alan Third <alan <at> idiocy.org> wrote:
>
> On Tue, Feb 09, 2021 at 06:29:22PM +0200, Andrii Kolomoiets wrote:
> > Alan Third <alan <at> idiocy.org> writes:
> >
> > > On Tue, Feb 09, 2021 at 11:05:08AM +0000, Alan Third wrote:
> > >>
> > >> The patch Aaron and Andrii are using calls redisplay() just before the
> > >> frame is drawn, but only if it is garbaged.
> > >
> > > I see from a subsequent email that Andrii isn't using the NS port, so
> > > that bit of my message is wrong.
> >
> > Sorry for kind of misleading you.  I indeed use NS port. The receipt for
> > minibuffer-only frame flickering was made on nearly recent master
> > version with your patch applied.  (I must say resizing and fullscreen
> > transition looks awesome now, thanks!)
> >
> > I used GTK port under X in the VirtualBox to test the issue with the
> > minibuffer-only frame resized more than once even if the text is not
> > changed.
>
> Ah, OK. I guess it probably is exclusive to NS then.
>
> The obvious solution IMO is to retain a copy of the old frame contents
> and draw them in after resizing, before we try calling redisplay().
>
> On the other hand, it would be nice to know why redisplay() isn't
> drawing anything...

inhibit-redisplay appears to be t when miniframes are asked to resize.
Could that be related? I tried letting it to nil and that didn't help.

It also happens that setting the resize to happen via run-with-timer
fixes the flicker:
https://github.com/muffinmad/emacs-mini-frame/pull/32/files#diff-8289c4c5300044ca6d7f9f6f60067a1b5e0d61b6ad0b58720a7c694662ea13abR207

Unfortunately, that prevents resizing when displaying a prompt like
`yes-or-no-p`.

The other different thing about the minibuffer resizing is it all
happens within `read-from-minibuffer`




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Thu, 11 Feb 2021 22:17:02 GMT) Full text and rfc822 format available.

Message #56 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 46155 <at> debbugs.gnu.org, andreyk.mad <at> gmail.com
Subject: [PATCH v2] Fix flicker when resizing NS frame programmatically
 (bug#46155)
Date: Thu, 11 Feb 2021 22:16:48 +0000
; Incidentally fixes bug#21326.

* src/nsterm.m ([EmacsView viewWillDraw]): New function.
([EmacsView viewDidResize:]): We now have to mark the frame for
display on resize.
([EmacsView initFrameFromEmacs:]): Retain frame contents on resize.
([EmacsView updateLayer]): Don't update the layer is the frame is
still garbaged.
---
 src/nsterm.m | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/src/nsterm.m b/src/nsterm.m
index 1b2328628e..ab898184f5 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7339,6 +7339,8 @@ - (void)viewDidResize:(NSNotification *)notification
 
       [surface release];
       surface = nil;
+
+      [self setNeedsDisplay:YES];
     }
 #endif
 
@@ -7510,6 +7512,16 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
   [self initWithFrame: r];
   [self setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
 
+#ifdef NS_DRAW_TO_BUFFER
+  /* These settings mean AppKit will retain the contents of the frame
+     on resize.  Unfortunately it also means the frame will not be
+     automatically marked for display, but we can do that ourselves in
+     viewDidResize.  */
+  [self setLayerContentsRedrawPolicy:
+          NSViewLayerContentsRedrawOnSetNeedsDisplay];
+  [self setLayerContentsPlacement:NSViewLayerContentsPlacementTopLeft];
+#endif
+
   FRAME_NS_VIEW (f) = self;
   emacsframe = f;
 #ifdef NS_IMPL_COCOA
@@ -8452,6 +8464,34 @@ - (void)copyRect:(NSRect)srcRect to:(NSRect)dstRect
 }
 
 
+#ifdef NS_IMPL_COCOA
+/* If the frame has been garbaged but the toolkit wants to draw, for
+   example when resizing the frame, we end up with a blank screen.
+   Sometimes this results in an unpleasant flicker, so try to
+   redisplay before drawing.  */
+- (void)viewWillDraw
+{
+  if (FRAME_GARBAGED_P (emacsframe)
+      && !redisplaying_p)
+    {
+      /* If there is IO going on when redisplay is run here Emacs
+         crashes.  I think it's because this code will always be run
+         within the run loop and for whatever reason processing input
+         is dangerous.  This technique was stolen wholesale from
+         nsmenu.m and seems to work.  */
+      bool owfi = waiting_for_input;
+      waiting_for_input = 0;
+      block_input ();
+
+      redisplay ();
+
+      unblock_input ();
+      waiting_for_input = owfi;
+    }
+}
+#endif
+
+
 #ifdef NS_DRAW_TO_BUFFER
 - (BOOL)wantsUpdateLayer
 {
@@ -8469,6 +8509,13 @@ - (void)updateLayer
 {
   NSTRACE ("[EmacsView updateLayer]");
 
+  /* We run redisplay on frames that are garbaged but marked for
+     display before updateLayer is called, so if the frame is still
+     garbaged that means the last redisplay must have refused to
+     update the frame.  */
+  if (FRAME_GARBAGED_P (emacsframe))
+    return;
+
   /* This can fail to update the screen if the same surface is
      provided twice in a row, even if its contents have changed.
      There's a private method, -[CALayer setContentsChanged], that we
-- 
2.29.2


-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Fri, 12 Feb 2021 04:07:01 GMT) Full text and rfc822 format available.

Message #59 received at 46155 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Alan Third <alan <at> idiocy.org>, Aaron Jensen <aaronjensen <at> gmail.com>,
 46155 <at> debbugs.gnu.org, Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Subject: Re: [PATCH v2] Fix flicker when resizing NS frame programmatically
 (bug#46155)
Date: Thu, 11 Feb 2021 22:06:33 -0600
On Thu, Feb 11, 2021 at 4:16 PM Alan Third <alan <at> idiocy.org> wrote:
> ...

Awesome, this works well for me on first try. Thank you. I'll use it
for a while and report back.

Aaron




Reply sent to Alan Third <alan <at> idiocy.org>:
You have taken responsibility. (Sat, 13 Feb 2021 22:45:01 GMT) Full text and rfc822 format available.

Notification sent to Aaron Jensen <aaronjensen <at> gmail.com>:
bug acknowledged by developer. (Sat, 13 Feb 2021 22:45:01 GMT) Full text and rfc822 format available.

Message #64 received at 46155-done <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 46155-done <at> debbugs.gnu.org, Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Subject: Re: [PATCH v2] Fix flicker when resizing NS frame programmatically
 (bug#46155)
Date: Sat, 13 Feb 2021 22:44:03 +0000
On Thu, Feb 11, 2021 at 10:06:33PM -0600, Aaron Jensen wrote:
> On Thu, Feb 11, 2021 at 4:16 PM Alan Third <alan <at> idiocy.org> wrote:
> > ...
> 
> Awesome, this works well for me on first try. Thank you. I'll use it
> for a while and report back.

I've pushed this change to master. If we see any problems (I've not
yet) we can reopen this bug report and revert the commit.
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46155; Package emacs. (Sat, 13 Feb 2021 22:46:01 GMT) Full text and rfc822 format available.

Message #67 received at 46155-done <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Alan Third <alan <at> idiocy.org>, Aaron Jensen <aaronjensen <at> gmail.com>,
 46155-done <at> debbugs.gnu.org, Andrii Kolomoiets <andreyk.mad <at> gmail.com>
Subject: Re: [PATCH v2] Fix flicker when resizing NS frame programmatically
 (bug#46155)
Date: Sat, 13 Feb 2021 16:45:38 -0600
On Sat, Feb 13, 2021 at 4:44 PM Alan Third <alan <at> idiocy.org> wrote:
> I've pushed this change to master. If we see any problems (I've not
> yet) we can reopen this bug report and revert the commit.

Great, thank you for the fix.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 14 Mar 2021 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 44 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.