From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 04 12:38:55 2018 Received: (at submit) by debbugs.gnu.org; 4 Mar 2018 17:38:55 +0000 Received: from localhost ([127.0.0.1]:44653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esXb3-00025V-Oo for submit@debbugs.gnu.org; Sun, 04 Mar 2018 12:38:54 -0500 Received: from eggs.gnu.org ([208.118.235.92]:39002) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esXb0-00025F-TA for submit@debbugs.gnu.org; Sun, 04 Mar 2018 12:38:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1esXar-0002Y2-3o for submit@debbugs.gnu.org; Sun, 04 Mar 2018 12:38:45 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:38642) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1esXaq-0002Xp-UY for submit@debbugs.gnu.org; Sun, 04 Mar 2018 12:38:41 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58167) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1esXam-0007Zr-4f for bug-gnu-emacs@gnu.org; Sun, 04 Mar 2018 12:38:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1esXah-0002PB-Re for bug-gnu-emacs@gnu.org; Sun, 04 Mar 2018 12:38:36 -0500 Received: from mail-pg0-x233.google.com ([2607:f8b0:400e:c05::233]:34436) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1esXah-0002Nk-FU for bug-gnu-emacs@gnu.org; Sun, 04 Mar 2018 12:38:31 -0500 Received: by mail-pg0-x233.google.com with SMTP id m19so5910710pgn.1 for ; Sun, 04 Mar 2018 09:38:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=eHtxEn8sPPSJHDlHJNEgaN0PQo3xUj/hzK62uYu299c=; b=b9DKt+SKWRxy+cbQjFEW0jzTN3Ln/JQSfj5wq0M33nH6PcZVdl/Ebetga+qXdrsxHW qhOU6rtxsV4Nj7OiMPLqmldp5opEc8yUh/+navum/wD4t+yU/+C42ucfRGwL3GF9H7hU f+xsTdoWpD1bM3Sv9UCbTbwlVqunt32JtToKQXmkVH5Tn6gbgO9ES+q0KgQ0WFe3Jbab +331jQJEkmJpgFvOrNZrozsHjh6Jc+1pUUrX+gbtC5URDjU+p/bjqe8Ji6GlwA37nwgD TMtPsjhiSujs0HXhtCc1BIoM62+hc7mEgCpdlGswB708ZAA7JjqTQtrmB1AUmABI/rcO n/kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=eHtxEn8sPPSJHDlHJNEgaN0PQo3xUj/hzK62uYu299c=; b=HrtCSSV2piTywBly9C9yP4YWu+03IC3fMTgar2mPcsmqdZS9Voqu3g1ZnmSaeZsK5l vt8Q1j1OCAnvp+03XIB52iVKiEI5AWko1xGTjsAPaBVMuIFxXN2kyFky2ILLxLeek+Xz 6jcyxJGJMRcT6ClI+mKqXm1PmOxjdtJUhD5/Qlo8s7BPQQb7d9hxzDILiAgP/Pe6jfqM R9WWAn5+GOS/bDMFe+U+xR+F91BGOw3osigAw2Eo+2BsBVXIf4UPLJUgaofQ4D5JoT2K uqpJIK1OcrfIRXrltbzBC1QexpXfPCNELOiV5md3/OM5HjNnMyTUVS+ogSc9DnZKSudQ zpFQ== X-Gm-Message-State: APf1xPBf3DLKcBLMD7j4bhDkgTfiiaIVTiNQP8inqbuxzdrSI+6Xnmxw 4oE8nRvq9z0+sVRR0+ESFjTVQl8Z X-Google-Smtp-Source: AG47ELsGNLORVyUmy94Jiy08jrLWfpuvoJSdSinW9nZwWWRX8wPlBkJRSQwQXWMppQgzf5KYVvGvxw== X-Received: by 10.98.204.132 with SMTP id j4mr12751969pfk.35.1520185109406; Sun, 04 Mar 2018 09:38:29 -0800 (PST) Received: from aaron-mbt.local (c-76-28-156-232.hsd1.wa.comcast.net. [76.28.156.232]) by smtp.gmail.com with ESMTPSA id p24sm10898913pfk.102.2018.03.04.09.38.28 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 04 Mar 2018 09:38:28 -0800 (PST) From: Aaron Jensen To: bug-gnu-emacs@gnu.org Subject: 26.0.91; buffer contents flicker on macOS frames when frames are resized Date: Sun, 04 Mar 2018 09:38:27 -0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) Now that undecorated frames are a reality, some cool stuff is happening like posframe: https://github.com/tumashu/posframe and https://github.com/tumashu/ivy-posframe posframe creates and manages child frames at a position in a buffer. It uses `fit-frame-to-buffer' to resize frames. It appears that (on macOS, at least) when a frame is resized, there is an unsightly flicker. It does not matter if the frame is undecorated or not. Here is a repro. It requires posframe, but that's just because it was easier to set up this way for me. I'm sure it could be reproduced with vanilla emacs functions: (require 'posframe) (setq my-timer (run-with-timer 0 0.2 (lambda () (posframe-show " *my-posframe-buffer*" :string "h= ello" :min-width 10 :min-height 10 :position 1) (run-with-timer 0.1 nil (lambda () (posframe-show " *my-posframe-b= uffer*" :min-width 10 :min-height 11 :position 1)))))) To end the flicker storm: (cancel-timer my-timer) (posframe-delete-all) For reference, this was originally reported here: https://github.com/tumash= u/ivy-posframe/issues/7 In GNU Emacs 26.0.91 (build 1, x86_64-apple-darwin17.4.0, NS appkit-1561.20= Version 10.13.3 (Build 17D102)) of 2018-03-02 built on aaron-mbt.local Repository revision: 6719f05ff75ec19e45e40b98d8b0c6184168ac5e Windowing system distributor 'Apple', version 10.3.1561 Recent messages: syntax-ppss: Lisp nesting exceeds =E2=80=98max-lisp-eval-depth=E2=80=99 Search failed: there is an unmatched expression somewhere or we are at the = beginning/end of file. [12 times] Indenting region...done Saving file /Users/aaronjensen/Dropbox (Personal)/Notes/refile.org... Wrote /Users/aaronjensen/Dropbox (Personal)/Notes/refile.org g c Saving file /Users/aaronjensen/.emacs.d/elpa/26.0/develop/posframe-20180227= .305/posframe.el... Wrote /Users/aaronjensen/.emacs.d/elpa/26.0/develop/posframe-20180227.305/p= osframe.el Wrote /Users/aaronjensen/.emacs.d/elpa/26.0/develop/posframe-20180227.305/p= osframe.elc Wrote /Users/aaronjensen/.emacs.d/elpa/26.0/develop/posframe-20180227.305/p= osframe.{el,elc} Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=3D/usr/local/share/emacs/site-lisp --infodir=3D/usr/local/Cellar/emacs-plus/HEAD-6719f05/share/info/emacs --prefix=3D/usr/local/Cellar/emacs-plus/HEAD-6719f05 --with-xml2 --without-dbus --with-gnutls --with-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained' Configured features: JPEG RSVG IMAGEMAGICK NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS LCMS2 Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect: company-statistics-mode: t company-childframe-mode: t company-mode: t auto-compile-mode: t elisp-slime-nav-mode: t eros-mode: t lispyville-mode: t lispy-mode: t nameless-mode: t goto-address-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 bug-reference-prog-mode: t diff-auto-refine-mode: t magit-auto-revert-mode: t auto-dim-other-buffers-mode: t global-git-gutter+-mode: t git-gutter+-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t projectile-mode: t recentf-mode: t persp-mode: t desktop-save-mode: t global-wakatime-mode: t wakatime-mode: t evil-mc-mode: t hl-todo-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 global-vi-tilde-fringe-mode: t vi-tilde-fringe-mode: t save-place-mode: t savehist-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 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/26.0/develop/ht-20180129.1434/ht hides /Us= ers/aaronjensen/.emacs.d/core/libs/ht /Users/aaronjensen/.emacs.d/elpa/26.0/develop/inf-ruby-20180226.1511/inf-ru= by hides /usr/local/share/emacs/site-lisp/ruby/inf-ruby /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= stan hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-stan /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= exp hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-exp /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= J hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp/= org/ob-J /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -eshell hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/org-eshell /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= emacs-lisp hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0= .91/lisp/org/ob-emacs-lisp /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -gnus hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-gnus /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= css hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-css /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= lob hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-lob /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= forth hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ob-forth /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -macs hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-macs /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob = hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp/or= g/ob /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -version hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/org-version /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= scheme hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-scheme /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox = hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp/or= g/ox /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= abc hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-abc /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= C hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp/= org/ob-C /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -capture hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/org-capture /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= ref hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-ref /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= clojure hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/ob-clojure /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -mouse hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-mouse /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= ledger hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-ledger /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -ctags hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-ctags /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -entities hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/org-entities /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -archive hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/org-archive /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= screen hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-screen /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= haskell hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/ob-haskell /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= asymptote hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/ob-asymptote /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -mhe hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/org-mhe /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -table hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-table /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= keys hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-keys /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= org hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ox-org /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -plot hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-plot /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= awk hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-awk /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= groovy hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-groovy /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= octave hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-octave /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -faces hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-faces /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -colview hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/org-colview /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= R hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp/= org/ob-R /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -timer hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-timer /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= ebnf hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-ebnf /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -mobile hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/org-mobile /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= fortran hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/ob-fortran /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= shell hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ob-shell /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= perl hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-perl /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= sqlite hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-sqlite /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= sed hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-sed /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -list hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-list /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= ruby hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-ruby /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= eval hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-eval /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -habit hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-habit /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -clock hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-clock /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= html hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ox-html /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -src hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/org-src /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= lisp hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-lisp /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= ditaa hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ob-ditaa /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -pcomplete hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0= .91/lisp/org/org-pcomplete /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -lint hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-lint /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -rmail hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-rmail /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= latex hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ox-latex /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= sass hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-sass /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= io hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp= /org/ob-io /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= tangle hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-tangle /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= calc hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-calc /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= java hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-java /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= icalendar hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/ox-icalendar /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -eww hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/org-eww /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= md hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp= /org/ox-md /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= beamer hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ox-beamer /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -element hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/org-element /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -protocol hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/org-protocol /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= mscgen hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-mscgen /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= gnuplot hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/ob-gnuplot /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= latex hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ob-latex /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -id hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/org-id /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= vala hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-vala /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= man hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ox-man /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -feed hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-feed /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= lua hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-lua /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= table hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ob-table /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= ocaml hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ob-ocaml /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= coq hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-coq /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= picolisp hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/ob-picolisp /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -indent hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/org-indent /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= lilypond hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/ob-lilypond /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= matlab hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-matlab /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -datetree hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/org-datetree /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= python hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-python /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -bbdb hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-bbdb /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= makefile hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/ob-makefile /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -duration hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/org-duration /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -agenda hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/org-agenda /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= dot hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-dot /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= js hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp= /org/ob-js /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= publish hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/ox-publish /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -inlinetask hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.= 0.91/lisp/org/org-inlinetask /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= org hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-org /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= core hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-core /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -compat hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/org-compat /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -docview hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/org-docview /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= odt hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ox-odt /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= plantuml hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/ob-plantuml /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= ascii hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/ox-ascii /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -loaddefs hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/org-loaddefs /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -w3m hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/org-w3m /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -bibtex hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/org-bibtex /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -info hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/l= isp/org/org-info /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= hledger hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/ob-hledger /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= maxima hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-maxima /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lisp/o= rg/org /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -macro hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-macro /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= sql hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/lis= p/org/ob-sql /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -attach hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/org-attach /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= processing hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0= .91/lisp/org/ob-processing /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ox-= texinfo hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91= /lisp/org/ox-texinfo /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -irc hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/org-irc /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -crypt hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/org-crypt /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -footnote hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.= 91/lisp/org/org-footnote /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/org= -install hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.9= 1/lisp/org/org-install /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= comint hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/= lisp/org/ob-comint /Users/aaronjensen/.emacs.d/elpa/26.0/develop/org-plus-contrib-20180226/ob-= shen hides /usr/local/Cellar/emacs-plus/HEAD-6719f05/share/emacs/26.0.91/li= sp/org/ob-shen Features: (shadow sort mail-extr evil-nerd-commenter evil-nerd-commenter-operator evil-nerd-commenter-sdk misearch multi-isearch counsel-projectile tmux emacsbug sendmail smex appt diary-lib diary-loaddefs epa-file org-agenda executable pp vc-git org-gcal org-archive request-deferred deferred request alert log4e notifications dbus xml gntp company-tng eieio-opt speedbar sb-image ezimage dframe colir tabify shrink-path open-junk-file company-emoji company-emoji-list org-eldoc evil-org org-table ob-shell ob-ruby ob-restclient restclient ob-http ob-http-mode ob-elixir company-statistics company-files company-keywords company-dabbrev-code company-dabbrev company-capf company-childframe posframe company overseer pkg-info epl f auto-compile packed elisp-slime-nav eros flycheck-package package-lint finder lispyville lispy iedit iedit-lib multiple-cursors-core lispy-inline avy semantic/db semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet evil-ediff ediff-merg ediff-wind ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff edebug lispy-tags nameless goto-addr auto-highlight-symbol dtrt-indent highlight-numbers parent-mode highlight-parentheses hideshow rainbow-delimiters org-bullets org-download toc-org yasnippet-snippets yasnippet elec-pair 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 image-mode org-bibtex bibtex org-bbdb org-w3m org-checklist org-inlinetask smartparens-org 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 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 magithub-core magithub-faces magithub-settings smartparens-markdown markdown-mode bug-reference ghub+ apiwrap apropos 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 url-http tls gnutls url-gw nsm 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-auth url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff-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 editorconfig-core editorconfig-core-handle editorconfig-fnmatch 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 projectile grep recentf tree-widget persp-mode desktop frameset wakatime-mode contextual-menubar quiet-emacs fill-or-unfill init-macos-terminal-copy-paste init-flyspell 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 zone spacemacs-whitespace-cleanup ws-butler winum winner spacemacs-purpose-popwin window-purpose-x imenu-list imenu ibuf-ext ibuffer ibuffer-loaddefs window-purpose window-purpose-fixes window-purpose-prefix-overload window-purpose-switch window-purpose-layout window-purpose-core window-purpose-configuration window-purpose-utils vi-tilde-fringe unicode-fonts smartparens-config smartparens-text saveplace savehist popwin osx-trash origami origami-parsers linum ivy-hydra info+ flycheck-pos-tip pos-tip flycheck find-func flx-ido eyebrowse evil-surround evil-search-highlight-persist evil-numbers evil-lisp-state smartparens evil-lion evil-indent-plus evil-exchange evil-escape evil-anzu anzu eval-sexp-fu highlight font-lock+ frame-fns avoid editorconfig noutline outline doom-modeline let-alist powerline-separators color all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons memoize counsel dired dired-loaddefs compile esh-util etags xref project swiper ivy flx delsel ivy-overlay ffap clean-aindent-mode gh-common gh-profile s marshal dash rx docker-tramp tramp-cache hybrid-mode exec-path-from-shell 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 cus-edit cus-start cus-load 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 help-fns radix-tree package-build mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr json map lisp-mnt hl-line xt-mouse autorevert filenotify cl-extra disp-table wid-edit monokai-theme info finder-inf patch-server init-sass init-php init-html init-evil tramp tramp-compat tramp-loaddefs trampver 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 help-mode warnings package url-handlers url-parse auth-source cl-seq password-cache 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 time-date 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 lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 1411209 431571) (symbols 48 82837 1) (miscs 40 2876 4265) (strings 32 311225 33216) (string-bytes 1 10567800) (vectors 16 139011) (vector-slots 8 3139062 163364) (floats 8 1044 1162) (intervals 56 22198 2513) (buffers 992 77)) From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 04 15:27:46 2018 Received: (at 30699) by debbugs.gnu.org; 4 Mar 2018 20:27:46 +0000 Received: from localhost ([127.0.0.1]:44745 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esaEU-0006CB-K4 for submit@debbugs.gnu.org; Sun, 04 Mar 2018 15:27:46 -0500 Received: from mail-wm0-f42.google.com ([74.125.82.42]:35572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esaES-0006By-U8 for 30699@debbugs.gnu.org; Sun, 04 Mar 2018 15:27:45 -0500 Received: by mail-wm0-f42.google.com with SMTP id x7so11788497wmc.0 for <30699@debbugs.gnu.org>; Sun, 04 Mar 2018 12:27:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=GzCRXpFtsXtjgpgbNdkyxGGFYLHOrHzJjp9oTAHC/lY=; b=uaTIVcBhEc9pUeNFXX48FLnlpS+FRaAPDtjUq5b+M1X6k2SpZKDgAkxlFFfa5oqYQL kIFCwMNiw3s08aLRdk4O1ePYtEladAu3Tm2shEA/NMMGtk5M92JoE0svNDRINIQnyFb3 oXdiln94sHTw0FeTwT/Az8arxMMrrEt85HA+6SWQMQb0yLZV2h8cp9TFTQpilrRph2ZV pkX+Ivy0uP7xGQPWrzi9Pkcwv+a6AGDSrWftrcjE/H51bIdVf11hWI50PH9zu7Robh9E 9oKqQqHKKlwdyZV+udCj2riMjO+s6hp5fQfLOnfp5Cz3WVme/2Q/THlKYB3kS/eCErKC aZYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=GzCRXpFtsXtjgpgbNdkyxGGFYLHOrHzJjp9oTAHC/lY=; b=N22LBR4DscUpA3CcxRtMq4wnmxHz93Z6EI4kroZyp2vlP1OcGw8OnvMJ/FtpndTBcx xWPFtihQGEvlHxBfS4EdhEX13TJFa3KEJzNHAzZAywrbZSeAz1m5qQ4AmnHwGH/RrQuz 6gma3mTwBtO3LC/kDewYdE3NevPK8FB5e25pFAZLvqj47nbbBw0DoPCSQPqy7Llv9LLi jvNgVL/+ZycwuOpxLeSrhRTTiiUOvkrpyu5HvgMwib+cbDPcu/gPy82e4Gy6slsZu9mE 8Z5YSCJJIAjvx49iY58ZBJtnlafAfLaEUx0pzwhK4TCk0HMiAPcBcj74Puio5w8Y3FNM r2pA== X-Gm-Message-State: AElRT7HRfQqn4Gp8IjIk1VNf/XK13Y6immlFOftwx92p/tCELdtwwNtr bwEAb/BezeEi1o/uylR77O8= X-Google-Smtp-Source: AG47ELvMS29wh9cBrxlUKQjxoT5FVW25VVJvP3+7daUa4mIz52AwYzpfxaNvqxH54+yseW5KLFJdgA== X-Received: by 10.28.227.86 with SMTP id a83mr6907096wmh.3.1520195259088; Sun, 04 Mar 2018 12:27:39 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-e8d9-a19c-5d74-f7c1.holly.idiocy.org. [2001:8b0:3f8:8129:e8d9:a19c:5d74:f7c1]) by smtp.gmail.com with ESMTPSA id l22sm13946861wre.52.2018.03.04.12.27.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 04 Mar 2018 12:27:38 -0800 (PST) Date: Sun, 4 Mar 2018 20:27:36 +0000 From: Alan Third To: Aaron Jensen Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180304202736.GA1479@breton.holly.idiocy.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Sun, Mar 04, 2018 at 09:38:27AM -0800, Aaron Jensen wrote: > It appears that (on macOS, at least) when a frame is resized, there is > an unsightly flicker. It does not matter if the frame is undecorated or > not. Simpler repro: (dotimes (n 10) (set-frame-parameter nil 'width (+ 80 n)) (sit-for 0.1)) -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 04 16:34:21 2018 Received: (at 30699) by debbugs.gnu.org; 4 Mar 2018 21:34:21 +0000 Received: from localhost ([127.0.0.1]:44767 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esbGv-0007nJ-46 for submit@debbugs.gnu.org; Sun, 04 Mar 2018 16:34:21 -0500 Received: from mail-wm0-f50.google.com ([74.125.82.50]:56082) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esbGo-0007n1-UG for 30699@debbugs.gnu.org; Sun, 04 Mar 2018 16:34:15 -0500 Received: by mail-wm0-f50.google.com with SMTP id q83so12294459wme.5 for <30699@debbugs.gnu.org>; Sun, 04 Mar 2018 13:34:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=lYRkotGiTrBdsGijmykOl4SLD1EOKPOdyxG3fcPekPg=; b=hFEhrvpBAELPMJeMj4aqOdaTiCp8u75VsSFRJgsXdIUATIO7vPSkA3Bde6P2U5zl68 jHVO0+J6qlg9WXyuxq0cEFED2MpamTjtuT2ITjQs21XbtaxMimht5rfZTRwHyIJ+btGK 8TGCbDy8XQ9NGgD/1dvVTfhe/lmnFhp9cnS6MtX/JsYXZgaeHDMnppjg5kQn6Kzoecfn 4fk9mboMblJzWWii7eqaEIHHAyvrjgvcmVR3ApEcb82fKOHK/BRRt2tZIWtFgn+R+AFz L1TDzRKKzjGMAY3HFfkQi6gNaolshcVAHj6NZtuCFPrkN1yUYTYJr5ivelPM1OQyLRm/ Ddzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=lYRkotGiTrBdsGijmykOl4SLD1EOKPOdyxG3fcPekPg=; b=d7foX+OsjI1wZT3IRmGr8AmUm6+DMWgohdXPqoOH5E5FUaTyo7FSk5hZhOmvOugPZ7 /K1auBLAY6tEKIVmALnGi4Ow1cSHWcX/9y/U2unM+PzGWq1E8XI9TaawJDGWW850i6gC PGMo0OF72ZCwVbgVM630Njxg0T+Ft1TYD4+MDJcfOjZri1gjazCVyHPZZuBwUvXHhbSn sQWZiN6aK2yr9k/p+vnvbPWEaQZjIw5q7u6SKyHuboZWJeTxiONRjEmJcDZsIl0pTkjZ uRPmvFCWhyVKyXD8ZNdAWvF9k+K/LTgC6/4X14ffHI9E25ohWcg2ua6j2DaYSZzAqGcn i2UQ== X-Gm-Message-State: APf1xPC7+kMH+0ERqNbqSLLtvdp+sVc88PG0Snq/0C3B1UldNrX6ztWE BFuRBb2XDt+PxfvPdeAHxdM= X-Google-Smtp-Source: AG47ELvNwZADCzM1X6V5yAuyo2OgK8/x5FQltxKuwpoM119JdGwX+IuKPo8RucfsfV9/3V60/Js7bw== X-Received: by 10.80.165.143 with SMTP id a15mr15840979edc.289.1520199249004; Sun, 04 Mar 2018 13:34:09 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-e8d9-a19c-5d74-f7c1.holly.idiocy.org. [2001:8b0:3f8:8129:e8d9:a19c:5d74:f7c1]) by smtp.gmail.com with ESMTPSA id m1sm11284185edd.75.2018.03.04.13.34.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 04 Mar 2018 13:34:07 -0800 (PST) Date: Sun, 4 Mar 2018 21:34:04 +0000 From: Alan Third To: Aaron Jensen Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180304213404.GB1479@breton.holly.idiocy.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="PEIAKu/WMn1b1Hv9" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180304202736.GA1479@breton.holly.idiocy.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) --PEIAKu/WMn1b1Hv9 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Sun, Mar 04, 2018 at 08:27:36PM +0000, Alan Third wrote: > On Sun, Mar 04, 2018 at 09:38:27AM -0800, Aaron Jensen wrote: > > It appears that (on macOS, at least) when a frame is resized, there is > > an unsightly flicker. It does not matter if the frame is undecorated or > > not. > > Simpler repro: > > (dotimes (n 10) > (set-frame-parameter nil 'width (+ 80 n)) > (sit-for 0.1)) > It’s the call to SET_FRAME_GARBAGED in EmacsView::updateFrameSize. I don’t know if it’s needed in this circumstance, but without it it stops the frame being blanked when resizing with the mouse, which is unpleasant. The attached patch appears to fix it without breaking mouse resizing, but it looks like this comment in windowDidResize also counts for macOS: /* In GNUstep, at least currently, it's possible to get a didResize without getting a willResize.. therefore we need to act as if we got the willResize now */ I honestly don’t see that it makes any difference though. The root problem is actually that we’re unable to execute redisplay while the frame is being resized by a mouse. The NS event loop goes into some ‘modal’ state which we can’t break out of, thus preventing us from doing anything until it’s done. If that didn’t happen we wouldn’t need to blank the screen at all. -- Alan Third --PEIAKu/WMn1b1Hv9 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-Fix-flicker-when-resizing-frame-on-macOS-bug-30699.patch" >From 98c34098dca670b0613c84af347f4fa7046ae942 Mon Sep 17 00:00:00 2001 From: Alan Third Date: Sun, 4 Mar 2018 21:29:21 +0000 Subject: [PATCH] Fix flicker when resizing frame on macOS (bug#30699) * src/nsterm.m (EmacsView::updateFrameSize): Remove SET_FRAME_GARBAGED call. (EmacsView::windoWillResize): Call SET_FRAME_GARBAGED here instead. --- src/nsterm.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/nsterm.m b/src/nsterm.m index 1919c6defa..719db4d552 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -6998,7 +6998,6 @@ - (void) updateFrameSize: (BOOL) delay FRAME_PIXEL_TO_TEXT_WIDTH (emacsframe, neww), FRAME_PIXEL_TO_TEXT_HEIGHT (emacsframe, newh), 0, delay, 0, 1); - SET_FRAME_GARBAGED (emacsframe); cancel_mouse_face (emacsframe); /* The next two lines set the frame to the same size as we've @@ -7119,6 +7118,12 @@ - (NSSize)windowWillResize: (NSWindow *)sender toSize: (NSSize)frameSize } } + /* When the frame is being resized with the mouse we need to blank + it out or else we end up with old stuff being displayed. + + FIXME: This may not be the place to put this (bug#30699). */ + SET_FRAME_GARBAGED (emacsframe); + NSTRACE_RETURN_SIZE (frameSize); return frameSize; -- 2.16.1 --PEIAKu/WMn1b1Hv9-- From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 04 21:06:21 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 02:06:21 +0000 Received: from localhost ([127.0.0.1]:44908 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esfW9-0005Xs-Jt for submit@debbugs.gnu.org; Sun, 04 Mar 2018 21:06:21 -0500 Received: from mail-qk0-f175.google.com ([209.85.220.175]:45187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esfW8-0005Xg-FR for 30699@debbugs.gnu.org; Sun, 04 Mar 2018 21:06:20 -0500 Received: by mail-qk0-f175.google.com with SMTP id g2so18852626qkd.12 for <30699@debbugs.gnu.org>; Sun, 04 Mar 2018 18:06:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=fKXYUUjRFlHy/7qcuC2wjyR9tR3Vb/K7DbSnmYOY/4w=; b=aCtqMK31xCN10VBpOZFndKtTp2o3YyJHT3UtbL4VI5VVw36kJUkauGzT+0aOWl8bjy ieqLenIRNdIAvvr9s4TC5P6RetLjKuUc9NPDLhthpAhE/Y+BUAUPHSA31AYNjBwFdoOU KpFWJIBKngCUb3OUsydJYFvmZjbSpY0kQKlKLwUIaP/geTTEsXUEcFqcRvvQQKvlaCtI JV0tT85cHse7Yn0SHS+S+7hI9XkGM+VFzaV4oQ2hT9LvcWP4ZarhuZKCc8BGkS0txbLY o0WCHgfEmDfamEI+Ty5YFFPIYJoiAS+acwioJ3DNffH3IK6/+rrqrkEiUSatPAc7k6eu 2fag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=fKXYUUjRFlHy/7qcuC2wjyR9tR3Vb/K7DbSnmYOY/4w=; b=CpnGRXFn6mJenZARAiHZ6HTLgft8pvsuiAGkxJpaEUzjlgOkxgF6pq07974qAJR5ya T1X4ves/gleEWSOXosYN0M50b0q7nDXww8DFkT4IzgUEYhA2jdWwB4nmZeDeXhBPQHCG qQQzbxnjUJhlddpmK1FQ35THewHmlL7XqaQOC7Gio5ZgyooeZyCybZA2i+4RK8DzN7cq +CsLpTmtAskCmIZwmPTwVRjMNBElNhEDktfnXwLZu4kOeUGsrCquJWwzFKAjDBfTcRN2 pRY89tkFVzNAJYkUVPo3snRIzaby3G5F+s2wQwJJoLOw/Ch2oAnShClw/GSDH23dt3K4 JLQQ== X-Gm-Message-State: AElRT7G1aeYrT1ymLWiXvpV4AaDL2WfExV79cYM3qPKx4rIy8ZAQnLAK Pu3GBQ1JZQFjNH8hEkkBATU09Vc7HHOYYWVTjVtx2g== X-Google-Smtp-Source: AG47ELuAUgN24U/LSkTEkOy3+9uFN9tSX8qvPhU+p886xO+lOwqMgjMM3armk8s0zYslUNnIARXZVWEUqwp8VS5EfS0= X-Received: by 10.55.188.5 with SMTP id m5mr18839648qkf.321.1520215574928; Sun, 04 Mar 2018 18:06:14 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.54.65 with HTTP; Sun, 4 Mar 2018 18:06:13 -0800 (PST) In-Reply-To: <20180304213404.GB1479@breton.holly.idiocy.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> From: Aaron Jensen Date: Sun, 4 Mar 2018 18:06:13 -0800 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Alan Third Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) On Sun, Mar 4, 2018 at 1:34 PM, Alan Third wrote: >> Simpler repro: >> >> (dotimes (n 10) >> (set-frame-parameter nil 'width (+ 80 n)) >> (sit-for 0.1)) >> Thank you, that's much easier :) > The attached patch appears to fix it without breaking mouse resizing, > but it looks like this comment in windowDidResize also counts for macOS: This patch appears to fix it for me, it's much nicer, thank you! I tested it with my keyboard resizing and mouse resizing and all seems to work well. Is this too dangerous of a patch to apply to emacs-26? The main case I'd make for it is these new posframe libraries are really nice, so it'd be nice for non-HEAD users to be able to use them w/o the flicker. Thanks! From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 04 22:28:00 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 03:28:00 +0000 Received: from localhost ([127.0.0.1]:44955 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esgnA-0007av-Kd for submit@debbugs.gnu.org; Sun, 04 Mar 2018 22:28:00 -0500 Received: from eggs.gnu.org ([208.118.235.92]:58558) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esgn9-0007ai-9A for 30699@debbugs.gnu.org; Sun, 04 Mar 2018 22:27:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1esgn1-00073P-0W for 30699@debbugs.gnu.org; Sun, 04 Mar 2018 22:27:54 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45866) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1esgn0-00073C-T9; Sun, 04 Mar 2018 22:27:50 -0500 Received: from [176.228.60.248] (port=3982 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1esgmx-0007cY-2K; Sun, 04 Mar 2018 22:27:48 -0500 Date: Mon, 05 Mar 2018 05:27:33 +0200 Message-Id: <83d10jtd5m.fsf@gnu.org> From: Eli Zaretskii To: Aaron Jensen In-reply-to: (message from Aaron Jensen on Sun, 4 Mar 2018 18:06:13 -0800) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: alan@idiocy.org, 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Aaron Jensen > Date: Sun, 4 Mar 2018 18:06:13 -0800 > Cc: 30699@debbugs.gnu.org > > Is this too dangerous of a patch to apply to emacs-26? The main case > I'd make for it is these new posframe libraries are really nice, so > it'd be nice for non-HEAD users to be able to use them w/o the > flicker. Not only is this too risky for emacs-26, I believe this change might cause regressions elsewhere, in the form of leaving portions of the frame not redrawn when needed. I suggest you run with this change for a few weeks and watch for redisplay problems, before concluding it's okay to install it. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 00:22:02 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 05:22:02 +0000 Received: from localhost ([127.0.0.1]:44989 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esiZV-0002AX-Rt for submit@debbugs.gnu.org; Mon, 05 Mar 2018 00:22:02 -0500 Received: from mail-qk0-f177.google.com ([209.85.220.177]:37553) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esiZU-0002AE-RF for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 00:22:01 -0500 Received: by mail-qk0-f177.google.com with SMTP id y137so19231924qka.4 for <30699@debbugs.gnu.org>; Sun, 04 Mar 2018 21:22:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=H3coUnr3MOAGB583xJgSKV4HSzaPEhNkgAHlKDxtPK0=; b=I11iLk1Vv04nb/SMASVWk9dhRhFi02tA15OKvFIGTkSOhmKbuKHNjzcrAv+sFiqaVc 39tQyTjwxf7QZwUPLFfqnYvHj+BbcIESWxRIPgSTtjMMy3RBoj5+3KLoYT57rTu/LHSr xDsqeQYeVp4SDgmL0aadT0/kOn7FZKt8SPKqJYAKVlVKoWWH9Bg6v/6hel3PLtibrL6w H0MdxKOe322Pj4IzFkZcfBpaChOSX7LNVAQV8K6Y3Qr1U1zruREePicFirgm+4wE9qAg mqztmJDY0KwzA0pOaHnBgGoH1ngCqED4Iq2PBPYMHgHCyuo9j11r06u9iiZ835druial WrRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=H3coUnr3MOAGB583xJgSKV4HSzaPEhNkgAHlKDxtPK0=; b=ms5x75nUz72X2QDWkYGhSWsSEcyWh7trq+oqAafP6Ue0FrIvs3SkZe32/MGf0V4Yue R305vA8hLiyGWsOtiKfKbuVhIZTnnEedwquGS762KqgFEs9Lo0Onz8rX8LlMPIhruCQq FabVUfzUcxlCSBZrqBI8/WWpIM44rSbABzU26JqsMUsvlhMfa8/MFfGK5Ryyoso9E+Pl lKsZriEYy1wAhgU7Vib7XrvCmCKPfvfnILp/A58lJf9CGY/agcig9SWHgCcFwlliAIg7 yK3x2k3Pm/+71hD4SPCpt86dhOM3BDAXwTU+PZiAJ2ynhxh7JXzsSH6/KSMrdnARrjwa xELQ== X-Gm-Message-State: AElRT7EMUfW6+4p51oHc4Btq9PHKYbZKdoYkeOSo+a8NO24zt11qph0X LoqjtjfRBiQBFP2JMKV43AB4N5oQSlHni6rWjeg= X-Google-Smtp-Source: AG47ELsjKbfMfoDKm1qKT2c+hJp6CdVTyFD8kOjGT98GdXWFzOjZX9VsMhF9Hkj4m8llQw82S+ONZNPNQqpVlQOnTx4= X-Received: by 10.55.249.4 with SMTP id l4mr19137122qkj.165.1520227315416; Sun, 04 Mar 2018 21:21:55 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.54.65 with HTTP; Sun, 4 Mar 2018 21:21:54 -0800 (PST) In-Reply-To: <83d10jtd5m.fsf@gnu.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> From: Aaron Jensen Date: Sun, 4 Mar 2018 21:21:54 -0800 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: Alan Third , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On Sun, Mar 4, 2018 at 7:27 PM, Eli Zaretskii wrote: > Not only is this too risky for emacs-26, I believe this change might > cause regressions elsewhere, in the form of leaving portions of the > frame not redrawn when needed. I suggest you run with this change for > a few weeks and watch for redisplay problems, before concluding it's > okay to install it. Interesting. I'll keep an eye out. Are there particular scenarios you have in mind that may trigger the issues? From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 02:55:58 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 07:55:58 +0000 Received: from localhost ([127.0.0.1]:45025 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eskyT-00061G-Q5 for submit@debbugs.gnu.org; Mon, 05 Mar 2018 02:55:57 -0500 Received: from mail-qk0-f178.google.com ([209.85.220.178]:46476) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eskyS-000613-GH for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 02:55:56 -0500 Received: by mail-qk0-f178.google.com with SMTP id 130so19503979qkd.13 for <30699@debbugs.gnu.org>; Sun, 04 Mar 2018 23:55:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JNAXuibhu8ANDC/5of1x6FRqUIybFtOKyBwZm1YRCyA=; b=mgxjDzwXnOA0J+as4YaT1NQu+wJjOaixjH8QjJg+aaYSQqW7iNn3GODO+V/CPgPhfJ suM1bvI1lOmBTTZXs8lLoS4UEQNIAEr67eBx/5fUlOJ0x9PSv3g4v95EVKkaDVF3wwe+ 1Bn3MFf1Hj9XYkCn5oDhegLPpJ81djltwu/bjZNqHjAFSYRwIe2/NQCfg7Adq0k1t8Uh cdwJPzzW1eGXRlA+6l7LIVvaLpIhWiNPhWTvZNU0CtephERSUbB+FJt2KGS3/8Kn007i wh05zWMOPgvTwmhhlo8QaqkV9sy7iUc19ShoqeVoirI6pKTJvJtyXvrCLwkpNVw7dYXh DJmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JNAXuibhu8ANDC/5of1x6FRqUIybFtOKyBwZm1YRCyA=; b=eKLoy7PBI00J7+n30T0Fw6iPFehtIFbkXqdB2xq7gR+9AmS2xcIIwE8L0i2KB9hdUL 5izuRmG3mo+hkqZ+NpcUnaPysza3IPgjeo8Rftc19sG5gyIlUtneODIrGL/sKVFUxcTG +EUWF8Ed+dyHrpUAsEEiRdR3l0irAlZzK4oDC1AprxAt3LEe+g5O41Zu6VWID0YTmt3J OW5oo2J+ocIbxziKprxLXgKevFsrrYO0hwGJu8TspmvTs8zNElqWrZQfRHscvlghwFdd cnsfxymLpmNc6S26717nmSBjKxCMSMTlnbqZGYu2q0GHHHly97dTNkM1b5cVEINpQ47y KTXw== X-Gm-Message-State: AElRT7FLz5rcH4cy61IPyx76NjQyw8l11klZ1d/D6VEaJJRW/GZoDN6F NCQkUsYCo9I0Lmx5FUmyx7hu+rf1it9Pg02m2uE= X-Google-Smtp-Source: AG47ELsmDZKQUCAA65DDxSRDrJkvpCRJ9W7dRQfS8A/8DWZbGA/HNm4Ob3bwX8JdwI15Mg2HtOx0QIqc957eCrqU0cg= X-Received: by 10.55.162.73 with SMTP id l70mr21556889qke.124.1520236550946; Sun, 04 Mar 2018 23:55:50 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.54.65 with HTTP; Sun, 4 Mar 2018 23:55:50 -0800 (PST) In-Reply-To: <20180304213404.GB1479@breton.holly.idiocy.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> From: Aaron Jensen Date: Sun, 4 Mar 2018 23:55:50 -0800 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Alan Third Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On Sun, Mar 4, 2018 at 1:34 PM, Alan Third wrote: > The root problem is actually that we=E2=80=99re unable to execute redispl= ay > while the frame is being resized by a mouse. The NS event loop goes > into some =E2=80=98modal=E2=80=99 state which we can=E2=80=99t break out = of, thus preventing > us from doing anything until it=E2=80=99s done. If that didn=E2=80=99t ha= ppen we > wouldn=E2=80=99t need to blank the screen at all. Is this true on a mac as well? How are other apps like iTerm2 able to redraw during a resize? It's a naive question, but is it at all possible to redraw a garbaged frame w/o a flicker? I know nothing about the drawing code, so I apologize for the question if it's dumb. Thanks, Aaron From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 11:01:37 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 16:01:37 +0000 Received: from localhost ([127.0.0.1]:46109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1essYT-0002n2-9B for submit@debbugs.gnu.org; Mon, 05 Mar 2018 11:01:37 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57948) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1essYQ-0002mn-8u for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 11:01:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1essYJ-00037J-Uy for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 11:01:29 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55530) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1essYJ-00037A-RD; Mon, 05 Mar 2018 11:01:27 -0500 Received: from [176.228.60.248] (port=4576 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1essYI-0002VY-PX; Mon, 05 Mar 2018 11:01:27 -0500 Date: Mon, 05 Mar 2018 18:01:14 +0200 Message-Id: <834llutstx.fsf@gnu.org> From: Eli Zaretskii To: Aaron Jensen In-reply-to: (message from Aaron Jensen on Sun, 4 Mar 2018 21:21:54 -0800) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: alan@idiocy.org, 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Aaron Jensen > Date: Sun, 4 Mar 2018 21:21:54 -0800 > Cc: Alan Third , 30699@debbugs.gnu.org > > On Sun, Mar 4, 2018 at 7:27 PM, Eli Zaretskii wrote: > > Not only is this too risky for emacs-26, I believe this change might > > cause regressions elsewhere, in the form of leaving portions of the > > frame not redrawn when needed. I suggest you run with this change for > > a few weeks and watch for redisplay problems, before concluding it's > > okay to install it. > > Interesting. I'll keep an eye out. Are there particular scenarios you > have in mind that may trigger the issues? Not really. Setting the frame's garbaged flag causes a thorough redisplay on the next opportunity, so removing that could prevent redisplay in a variety of situations. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 11:12:47 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 16:12:47 +0000 Received: from localhost ([127.0.0.1]:46118 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1essjH-00032p-Iy for submit@debbugs.gnu.org; Mon, 05 Mar 2018 11:12:47 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60882) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1essjG-00032Z-6N for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 11:12:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1essj7-0007Sp-Db for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 11:12:40 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55786) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1essj7-0007Sf-AT; Mon, 05 Mar 2018 11:12:37 -0500 Received: from [176.228.60.248] (port=4590 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1essj6-0004OW-N4; Mon, 05 Mar 2018 11:12:37 -0500 Date: Mon, 05 Mar 2018 18:12:25 +0200 Message-Id: <831sgytsba.fsf@gnu.org> From: Eli Zaretskii To: Aaron Jensen In-reply-to: (message from Aaron Jensen on Sun, 4 Mar 2018 23:55:50 -0800) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: alan@idiocy.org, 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Aaron Jensen > Date: Sun, 4 Mar 2018 23:55:50 -0800 > Cc: 30699@debbugs.gnu.org > > It's a naive question, but is it at all possible to redraw a garbaged > frame w/o a flicker? AFAIK, no. Redrawing a garbaged frame involves clearing it and completely redrawing all of its windows, and that is what you perceive as flicker. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 11:21:54 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 16:21:54 +0000 Received: from localhost ([127.0.0.1]:46127 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esss5-0003Ga-Pb for submit@debbugs.gnu.org; Mon, 05 Mar 2018 11:21:53 -0500 Received: from mail-qk0-f178.google.com ([209.85.220.178]:46833) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esss3-0003GM-V4 for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 11:21:52 -0500 Received: by mail-qk0-f178.google.com with SMTP id 130so21205990qkd.13 for <30699@debbugs.gnu.org>; Mon, 05 Mar 2018 08:21:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=bkSpfKgk8SOry/z8BF9ePWcq+plcnCC4rZHvoHqgqCk=; b=i+pM3dMKX6rcfEKrF2FvmO8cvRPm7MVsgjG0B2lW7FBWTjmXfiJdhnT0nbMnaaMdyC oy7dsLESzHKYdweDypSvCPRGTiFP6qfC59V4yUVA9/2Y89uIGpjpprMqk5ESRwwbsHfR PstwapFbMKz5psjJmVf9GGJvBBcaSRxrUEXGSL0KMO1DREb9tYFvoJCkehbYOi1lOCfG 0p5TfuSraGPsPGv+fNQPd0uwvuad3KJjcAntaTo7xGEvVJVESqv3NSbcpDL+/hyWALM0 IxaE8B0j1w+ecjdXVfgz/3jJgV9UhrY4O7pDfoFXsbFCPNTbc0oIonhiWCwUxIUl9N6Q sOLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=bkSpfKgk8SOry/z8BF9ePWcq+plcnCC4rZHvoHqgqCk=; b=S9Cs2IOaa9iwAH11QVmpSqIgNGmpt+71p4q/Na5R8jBU9bwvmLwmiNRwbuqGm+GcFI Nb8QYupEmhjmPeV4Ym7VuUEvC/rzVFb2rSfIKJre1KNTLiHAh1rMt19Nuc+Y6bGTFnjZ QhXOEjSC79yLrOUm6qPdMNvjJMe+2epRcu/GT2Qy428YX0dQWPIJeO2nzitL9z6ZFwFs Ij883S5rJVNDpb4N5t5WWbMYz41Hof0ND8XlBWK0XPZcHUD9hOC8BcOVqbYCpBBeXpg+ aom4LpO71LI24WaB7loWo/9prPUzzDVTHIv3UjwGBwW/2UKpeljpl6eZ9nmrnt+GJz2t SDIQ== X-Gm-Message-State: AElRT7EBcHVGoG1XK9kFkPpfGo//nfUtRCL5eYu/1KaUGJ8TZqOBc4Nt 0PHBgDCeoeMKiXy2adDbsZOsJ9qWjRjyYr0tRTA= X-Google-Smtp-Source: AG47ELt8IbLmVC0S37fL66HfFYaWLdsUwU6uvHaABCJqGbcj0ASh9d6yJgj2RS+AfXDUdJihfAsfE6btc8CgsXcqh4I= X-Received: by 10.55.188.5 with SMTP id m5mr21675687qkf.321.1520266906342; Mon, 05 Mar 2018 08:21:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.54.65 with HTTP; Mon, 5 Mar 2018 08:21:45 -0800 (PST) In-Reply-To: <834llutstx.fsf@gnu.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> From: Aaron Jensen Date: Mon, 5 Mar 2018 08:21:45 -0800 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: Alan Third , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On Mon, Mar 5, 2018 at 8:01 AM, Eli Zaretskii wrote: > Not really. Setting the frame's garbaged flag causes a thorough > redisplay on the next opportunity, so removing that could prevent > redisplay in a variety of situations. Ok, and because this removes the setting of the frame's garbage flag from the `updateFrameSize` function and moves it to when it receives the `windowWillResize` event, I should only expect to see painting issues after a frame's size is changed I would imagine. Does anyone know if there are more ways to change a frame's size than `set-frame-parameter`, a mouse drag or AppleScript? > AFAIK, no. Redrawing a garbaged frame involves clearing it and > completely redrawing all of its windows, and that is what you perceive > as flicker. Thanks, I was thinking about double buffering--painting both the clear and the next paint on the same buffer before swapping it in, but I'm sure that's much more simplistic than what is actually happening. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 13:00:32 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 18:00:33 +0000 Received: from localhost ([127.0.0.1]:46166 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esuPY-0005Ze-NB for submit@debbugs.gnu.org; Mon, 05 Mar 2018 13:00:32 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38487) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esuPV-0005ZR-J7 for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 13:00:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1esuPM-0002PK-In for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 13:00:24 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58201) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1esuPM-0002PG-Et; Mon, 05 Mar 2018 13:00:20 -0500 Received: from [176.228.60.248] (port=4706 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1esuPL-0007wx-Fq; Mon, 05 Mar 2018 13:00:20 -0500 Date: Mon, 05 Mar 2018 20:00:07 +0200 Message-Id: <83tvtus8rc.fsf@gnu.org> From: Eli Zaretskii To: Aaron Jensen In-reply-to: (message from Aaron Jensen on Mon, 5 Mar 2018 08:21:45 -0800) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: alan@idiocy.org, 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Aaron Jensen > Date: Mon, 5 Mar 2018 08:21:45 -0800 > Cc: Alan Third , 30699@debbugs.gnu.org > > > AFAIK, no. Redrawing a garbaged frame involves clearing it and > > completely redrawing all of its windows, and that is what you perceive > > as flicker. > > Thanks, I was thinking about double buffering--painting both the clear > and the next paint on the same buffer before swapping it in, but I'm > sure that's much more simplistic than what is actually happening. We already have double-buffering on X, perhaps it can be implemented on macOS as well. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 14:23:41 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 19:23:41 +0000 Received: from localhost ([127.0.0.1]:46220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esvi1-00018o-E4 for submit@debbugs.gnu.org; Mon, 05 Mar 2018 14:23:41 -0500 Received: from mail-wm0-f46.google.com ([74.125.82.46]:53865) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esvi0-00018a-4w for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 14:23:40 -0500 Received: by mail-wm0-f46.google.com with SMTP id t74so18253987wme.3 for <30699@debbugs.gnu.org>; Mon, 05 Mar 2018 11:23:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Xggj5C8IZ0ugoKxBu/SEtbCNBg2nBMNrMkA0Ds55Hhg=; b=aIhoZby1C87GzcSxE1DGiONi18qNVqF2VlujDZTQV6TgbZGW8YLK7GkEKr9Sp5HD93 W8UOIEwGe/NmwIslq/FHlhp1mwxh+pPhzIa0CqfL8gdL+JHjy5+KjMHoSm1/VylO7Zys BQzUvZiGpixpEgFYjWy3F4v2gzfQY/Y4AvG+94MX3O3nnm00CjrKoehJSWvmtnuKfYqG lWSlmEz2q29HvMc3Ldd0t2dRyOdLDiD20oTNYIoc+t5ASy9Q0iJPsV4MPKFEKGE25Gsm 8EVefC1bDKKquoKOwIkBwqyGhjqKCA7UdFcpSKA2Hz4kkjYM2J88/tH2spBxNrYvW9+Z QdWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=Xggj5C8IZ0ugoKxBu/SEtbCNBg2nBMNrMkA0Ds55Hhg=; b=mwlDGakT3jz87+5Ejwld5uDW5k3KDNdHnHLlqZReNCqyOvIF8+rY1DqeWFNpSZdgne fuhOPqvXumZkb6tzNQeQ+nKIS2wHhrJ6PGK6NGzX1NpDVymuK0oCvur9X+7/eFi82wIn UvwBcJZTP4JjB0Oj/6A5idPcckbVtOQ2N+DmDbvDcQ+78LetNLVv+YmrS0XOB/tBEt31 vpW4ehsipH31iTUrBo8lNuc6qAaYfJiAZPP7P/emBQ4yTDB76yvL+hjfkGDu08qHbD/t P/+3OMSknxUdbPMykaywVw15PMvJyKA+5cRPE9l8tJ0qdY2qmxrZ4veeB4lpwly3WlWr 5nVw== X-Gm-Message-State: AElRT7GFFwsy2TPswL5X9+Hb3fEG8NM1K5Yju8ZBcauczCkLqaKmhEci 8/ROumutVXMvr3wfa38wl60= X-Google-Smtp-Source: AG47ELvEKPw4poJQ+iHxc2GsCB0rmCGSa4WZ/GQFnkFA6E+RtfDP9RhuxXP41o2XxqIDFLXB7hhX+Q== X-Received: by 10.28.72.136 with SMTP id v130mr8415273wma.87.1520277814451; Mon, 05 Mar 2018 11:23:34 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-e8d9-a19c-5d74-f7c1.holly.idiocy.org. [2001:8b0:3f8:8129:e8d9:a19c:5d74:f7c1]) by smtp.gmail.com with ESMTPSA id o2sm15816850wro.31.2018.03.05.11.23.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Mar 2018 11:23:33 -0800 (PST) Date: Mon, 5 Mar 2018 19:23:31 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180305192331.GA26656@breton.holly.idiocy.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <83tvtus8rc.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, Aaron Jensen X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Mon, Mar 05, 2018 at 08:00:07PM +0200, Eli Zaretskii wrote: > > From: Aaron Jensen > > Date: Mon, 5 Mar 2018 08:21:45 -0800 > > Cc: Alan Third , 30699@debbugs.gnu.org > > > > > AFAIK, no. Redrawing a garbaged frame involves clearing it and > > > completely redrawing all of its windows, and that is what you perceive > > > as flicker. > > > > Thanks, I was thinking about double buffering--painting both the clear > > and the next paint on the same buffer before swapping it in, but I'm > > sure that's much more simplistic than what is actually happening. > > We already have double-buffering on X, perhaps it can be implemented > on macOS as well. We could do something similar using NSDisableScreenUpdates and NSEnableScreenUpdates: https://developer.apple.com/documentation/appkit/1473676-nsdisablescreenupdates?language=objc We should be able to wrap it round redisplay. Where would that be done? -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 05 14:54:00 2018 Received: (at 30699) by debbugs.gnu.org; 5 Mar 2018 19:54:01 +0000 Received: from localhost ([127.0.0.1]:46253 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eswBM-0001vt-NG for submit@debbugs.gnu.org; Mon, 05 Mar 2018 14:54:00 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eswBL-0001vf-Ay for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 14:53:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eswBC-0006fS-LG for 30699@debbugs.gnu.org; Mon, 05 Mar 2018 14:53:53 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59874) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eswBC-0006fO-Gq; Mon, 05 Mar 2018 14:53:50 -0500 Received: from [176.228.60.248] (port=1100 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eswBB-0000Xs-TX; Mon, 05 Mar 2018 14:53:50 -0500 Date: Mon, 05 Mar 2018 21:53:37 +0200 Message-Id: <83muzms3i6.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180305192331.GA26656@breton.holly.idiocy.org> (message from Alan Third on Mon, 5 Mar 2018 19:23:31 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Mon, 5 Mar 2018 19:23:31 +0000 > From: Alan Third > Cc: Aaron Jensen , 30699@debbugs.gnu.org > > > We already have double-buffering on X, perhaps it can be implemented > > on macOS as well. > > We could do something similar using NSDisableScreenUpdates and > NSEnableScreenUpdates: > > https://developer.apple.com/documentation/appkit/1473676-nsdisablescreenupdates?language=objc > > We should be able to wrap it round redisplay. Where would that be > done? I don't think I understand the meaning of "wrap it round redisplay" to answer that. Is the feature you mention significantly different from what we use for double-buffering on X? If not, you can use the same model. From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 06 17:55:14 2018 Received: (at 30699) by debbugs.gnu.org; 6 Mar 2018 22:55:14 +0000 Received: from localhost ([127.0.0.1]:48182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etLUH-0007H7-MH for submit@debbugs.gnu.org; Tue, 06 Mar 2018 17:55:13 -0500 Received: from mail-wm0-f45.google.com ([74.125.82.45]:38070) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etLUF-0007Gu-De for 30699@debbugs.gnu.org; Tue, 06 Mar 2018 17:55:11 -0500 Received: by mail-wm0-f45.google.com with SMTP id z9so1208550wmb.3 for <30699@debbugs.gnu.org>; Tue, 06 Mar 2018 14:55:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=JKhooz2ywYg66kTEXyJ4t9oDEbGjVO7MTe8FZ84a7hI=; b=SzUjSoshGPCyq+bHHzHnFYpkFP6tpGEk6nOzOsAMSSLdwaNohzv+AIGsIt61rOggL7 R6DsCLeZBgOTpfQGqMxcBo9dhTo2Je5/RX+jqJftWzhRqbYanjt0h3barQOMnQnSjyVU R4F7rKfFHw/q5x8GFZv8QOI7po5cQnxGJBj7XAF4jFGvfT+ZQmKjT+QrjHZUM1Go5xQq +Md6YbCV1N7spjKz8BVJHO8A7r4wMy8WP+/y1uGtMn68KzbvMVHKgYqFwGKE5skNGDf0 JXG/4QMbYAj2r2f9kPay/ne9u/EL+ysNYSJzepBAhZ+wdGfK2vOdQP9x/AsPKVJlOpCE R8lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=JKhooz2ywYg66kTEXyJ4t9oDEbGjVO7MTe8FZ84a7hI=; b=gVaYdIXqojH2d8I+kBdS4KpktAGy4NnLU+9A7DZrzwxlNwEU2a2Eo8e/x6iyomQLiv IWM9DrYradFs3YGsZ5ubWiEyn2Ruvpwvuvn8qJGV0GgKRgKTe+LVhDUI20wNu2vnT/MZ pHxI1wH22Ng2gEk9arO6APeX6k9B/IA9IwLasoy0yBOA23jJf81an4J7CDq2XMdge/kC wX/HnKAflMZDnj9apkwj4IUnT0aUf5CRZNI5MV/oMn6Tjuc4YqTs4aWMN9Yu2GsASl8X ZrkA2DJQh6c6+5hNtX1KLD/zhDiR1az4hMOGR9wnTgC9nXlzSPpdUPqwBrh5VK+VjW/z Uedw== X-Gm-Message-State: AElRT7HW9Zd7KOL2LhIQG9YkV2YrL7Y+ia86RAnWUHszerYxwxWgGDjS sOrjJ9d72kEEiHXhLMZurtU= X-Google-Smtp-Source: AG47ELs5MdsGIqcjoHd8ye/1TKUt5MIgr9JKoxZbDsza6wthbRwyFJ53kzYYN3qPTLYVx17/2v3cXg== X-Received: by 10.28.50.69 with SMTP id y66mr13562650wmy.133.1520376905125; Tue, 06 Mar 2018 14:55:05 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-e8d9-a19c-5d74-f7c1.holly.idiocy.org. [2001:8b0:3f8:8129:e8d9:a19c:5d74:f7c1]) by smtp.gmail.com with ESMTPSA id m55sm20669158wrf.38.2018.03.06.14.55.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Mar 2018 14:55:04 -0800 (PST) Date: Tue, 6 Mar 2018 22:55:02 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180306225502.GA30546@breton.holly.idiocy.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83muzms3i6.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Mon, Mar 05, 2018 at 09:53:37PM +0200, Eli Zaretskii wrote: > > Date: Mon, 5 Mar 2018 19:23:31 +0000 > > From: Alan Third > > Cc: Aaron Jensen , 30699@debbugs.gnu.org > > > > > We already have double-buffering on X, perhaps it can be implemented > > > on macOS as well. > > > > We could do something similar using NSDisableScreenUpdates and > > NSEnableScreenUpdates: > > > > https://developer.apple.com/documentation/appkit/1473676-nsdisablescreenupdates?language=objc > > > > We should be able to wrap it round redisplay. Where would that be > > done? > > I don't think I understand the meaning of "wrap it round redisplay" to > answer that. Is the feature you mention significantly different from > what we use for double-buffering on X? If not, you can use the same > model. I don’t know how we handle double buffering on X, but if it’s anything like my previous experiences of double buffering, this is different. NS already uses double buffering, the issue here is that we want the screen blank and subsequent drawing of the frame to appear as one atomic action, but right now we see them as two actions. In theory if you call NSDisableScreenUpdates before the blanking of the frame, then call NSEnableScreenUpdates after drawing the contents of the frame, both should appear as one action (we don’t see the blank frame at all). I’ve tried adding calls to NSDisableScreenUpdates and NSEnableScreenUpdates in redisplay_internal, just to see if it works, but I couldn’t get it to work at all: I always saw the blanked frame. Either these functions don’t work as advertised or there’s something else going on. It’s quite probable I’ve misunderstood redisplay_internal. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 06 18:00:51 2018 Received: (at 30699) by debbugs.gnu.org; 6 Mar 2018 23:00:51 +0000 Received: from localhost ([127.0.0.1]:48186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etLZj-0007Pn-DX for submit@debbugs.gnu.org; Tue, 06 Mar 2018 18:00:51 -0500 Received: from mail-wr0-f169.google.com ([209.85.128.169]:45921) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etLZh-0007PZ-1Y for 30699@debbugs.gnu.org; Tue, 06 Mar 2018 18:00:49 -0500 Received: by mail-wr0-f169.google.com with SMTP id p104so263495wrc.12 for <30699@debbugs.gnu.org>; Tue, 06 Mar 2018 15:00:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=7aezNlhorxhIDGRE14q8vtDitx3wWrv2/TiRj0iCEBE=; b=Vfqc0nXGI9CteVzSZWCXliKUpqHg9oWA7lD6y0TdO6wrayr5STO/3qQid01oI2ifgz vSaELee/XrFq9/uSWB3QRSxyS5Ekkl7IQPVIWegPWb0xTDDEALvALRA23zkuQ8ZDHfVY 01lsGRyk/oz/7/VFPi/CXemjnTmu7m8B9zjNa25Kuk8hfR3bxSPjVv389kSrh118TVIf Q7fbYq0B+TqvZPl6FvAin2093s720pOZ1gRGatjodyEn2bbIPUrFD5KNCyw+GRiy6YEx c9/AI0D4Oltx7ApKjyXCvqJLp5gLxiwFsNatXUXpRgHjBXwcIclHAuPBRjpYtQvnF2dr Ctww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=7aezNlhorxhIDGRE14q8vtDitx3wWrv2/TiRj0iCEBE=; b=iJBJuZoYd2k2jOmLuuYbwOE76O2S0zh1mDE/192oJRRVa1oRS5CzZPLNkP2yncfePP 8CEso1aBwGbS6gGhYSEVJAhLaB9Mfq6NN0HyzV7gpj97Iw6/nksF2kc5Gvs1XJ0fJs10 fEVL+bj6MSxnU0Zd9+6AFy7jKNcMcKqkh9qm9oXAvfKNWZebskJ6x04mqknW3eWUSclb qsVNHJ7EFQ2+vsobqdn6qB62Ez78C7V+C+1xwaj5aPdfJI6gbvzO4q2vmgvw/Xzix8qz +3Q4JAPXH4mjMcMBgBqMgCF5D6XtcgEGCjZWWmRgvy0noyOJE8GLipbmn98d6nLBXtBf M4Lg== X-Gm-Message-State: APf1xPAmdcTBcmeJJl0GitCRRgGAoqMPBbEJ+WQXM+8twJFt7q4jiVaf t4knqdgacRQDRPnszV+E+Og= X-Google-Smtp-Source: AG47ELsAbm5iauBLF8147FA4thUah8fED0Sjmop+upAQ1WjuQgGpYqFm4mLO3cX2poeUViozRCVzlg== X-Received: by 10.223.176.228 with SMTP id j33mr16390881wra.67.1520377242848; Tue, 06 Mar 2018 15:00:42 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-e8d9-a19c-5d74-f7c1.holly.idiocy.org. [2001:8b0:3f8:8129:e8d9:a19c:5d74:f7c1]) by smtp.gmail.com with ESMTPSA id r126sm15487504wmd.29.2018.03.06.15.00.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Mar 2018 15:00:42 -0800 (PST) Date: Tue, 6 Mar 2018 23:00:40 +0000 From: Alan Third To: Aaron Jensen Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180306230040.GB30546@breton.holly.idiocy.org> References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Sun, Mar 04, 2018 at 11:55:50PM -0800, Aaron Jensen wrote: > On Sun, Mar 4, 2018 at 1:34 PM, Alan Third wrote: > > The root problem is actually that we’re unable to execute redisplay > > while the frame is being resized by a mouse. The NS event loop goes > > into some ‘modal’ state which we can’t break out of, thus preventing > > us from doing anything until it’s done. If that didn’t happen we > > wouldn’t need to blank the screen at all. > > Is this true on a mac as well? How are other apps like iTerm2 able to > redraw during a resize? The short answer is that iTerm2 is a native Cocoa app, written in the way you should write Cocoa apps. Emacs isn’t. The long answer is quite complicated. I’m trying to write up a decent explanation of how the NS port works. > It's a naive question, but is it at all possible to redraw a garbaged > frame w/o a flicker? I know nothing about the drawing code, so I > apologize for the question if it's dumb. It should be, but I know very little about how Emacs goes about drawing the frame contents, so I won’t say definitely. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 07 12:26:22 2018 Received: (at 30699) by debbugs.gnu.org; 7 Mar 2018 17:26:22 +0000 Received: from localhost ([127.0.0.1]:49763 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etcpZ-0003j3-Qv for submit@debbugs.gnu.org; Wed, 07 Mar 2018 12:26:22 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41120) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etcpY-0003in-8s for 30699@debbugs.gnu.org; Wed, 07 Mar 2018 12:26:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1etcpS-0006vc-Cm for 30699@debbugs.gnu.org; Wed, 07 Mar 2018 12:26:15 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42912) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etcpM-0006uk-FI; Wed, 07 Mar 2018 12:26:08 -0500 Received: from [176.228.60.248] (port=2826 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1etcpL-0001UU-Pc; Wed, 07 Mar 2018 12:26:08 -0500 Date: Wed, 07 Mar 2018 19:26:01 +0200 Message-Id: <83a7vjre52.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180306225502.GA30546@breton.holly.idiocy.org> (message from Alan Third on Tue, 6 Mar 2018 22:55:02 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Tue, 6 Mar 2018 22:55:02 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > In theory if you call NSDisableScreenUpdates before the blanking of > the frame, then call NSEnableScreenUpdates after drawing the contents > of the frame, both should appear as one action (we don’t see the blank > frame at all). Where does the frame blanking happen in the NS build? > I’ve tried adding calls to NSDisableScreenUpdates and > NSEnableScreenUpdates in redisplay_internal, just to see if it works, > but I couldn’t get it to work at all: I always saw the blanked frame. > Either these functions don’t work as advertised or there’s something > else going on. It’s quite probable I’ve misunderstood > redisplay_internal. If you tell me where did you try to add these calls and perhaps also what was your mental model of what redisplay_internal does when you did that, I might be able to help you add this in the right places (assuming the idea is workable, and I trust your expertise on that). From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 07 12:27:17 2018 Received: (at 30699) by debbugs.gnu.org; 7 Mar 2018 17:27:17 +0000 Received: from localhost ([127.0.0.1]:49768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etcqT-0003ki-5D for submit@debbugs.gnu.org; Wed, 07 Mar 2018 12:27:17 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etcqO-0003kR-F7 for 30699@debbugs.gnu.org; Wed, 07 Mar 2018 12:27:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1etcqI-00075B-5i for 30699@debbugs.gnu.org; Wed, 07 Mar 2018 12:27:07 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42918) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etcqI-000756-16; Wed, 07 Mar 2018 12:27:06 -0500 Received: from [176.228.60.248] (port=2827 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1etcqH-0001hf-GA; Wed, 07 Mar 2018 12:27:05 -0500 Date: Wed, 07 Mar 2018 19:26:59 +0200 Message-Id: <838tb3re3g.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180306230040.GB30546@breton.holly.idiocy.org> (message from Alan Third on Tue, 6 Mar 2018 23:00:40 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180304202736.GA1479@breton.holly.idiocy.org> <20180304213404.GB1479@breton.holly.idiocy.org> <20180306230040.GB30546@breton.holly.idiocy.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Tue, 6 Mar 2018 23:00:40 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org > > I know very little about how Emacs goes about drawing the frame > contents Feel free to ask me questions. From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 07 15:26:15 2018 Received: (at 30699) by debbugs.gnu.org; 7 Mar 2018 20:26:15 +0000 Received: from localhost ([127.0.0.1]:49861 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etfdf-0008RU-BZ for submit@debbugs.gnu.org; Wed, 07 Mar 2018 15:26:15 -0500 Received: from mail-wr0-f175.google.com ([209.85.128.175]:44965) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etfdb-0008RE-TD for 30699@debbugs.gnu.org; Wed, 07 Mar 2018 15:26:12 -0500 Received: by mail-wr0-f175.google.com with SMTP id v65so3475699wrc.11 for <30699@debbugs.gnu.org>; Wed, 07 Mar 2018 12:26:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=/qnshr/21Sy8X1Qhz0VRm66qPn+dCodHu4a/oPI2wt0=; b=VxcVUNbzACg7OqN9k0U5G2RS4KzNyicrDClIGf2v1vmo/9g073E5DWs/9mTu9nU504 TZyuCE4Ysi1qpzlqQB02mFqTue0kvUW2BVWAgu6yS0VW3cC9MCGxvdXpx8C8L71yUYKk /e07xXSK4gTmWeMeevSmdTdB6J2es+KDZXZEUzvOkXDgvy7uOABWwqdFMsgAMZHKWYIu +kHbg9ODyWLhR5i8h3WdHfBxyVJWIYXpQRc4p6iACCzyPjpUi2JojemAYIlCLG9miGRi L/2wRjOHsfxJ/Dk5X4UukqJfnrqj02oGzbIdUHSPyLKz41NqrS2uHibxMgdkVnh7JFb2 ARQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=/qnshr/21Sy8X1Qhz0VRm66qPn+dCodHu4a/oPI2wt0=; b=VMmuHdZz+Dd1gMt4jhUxWmXT3CVa6DbdxvlEFpfbtRU72PrfQr+dBKYuHcz1sN2Hcs N9XjHVnH/4qoztwyYt+uDAOqydXXdqje3uTYN+tWh/8x5yxhuv1hD6we1P0OjjxU8N6K EgEceZb/43Ni6NxFy+DOjQmNsXm9NdrYjXXNA2FSEJFXpAf3aY+lJnYz6mS5WEavL8Zb Z1OnxJugW5fidYTF41ZPYObrSwmk210hj3VdAnj3AKD79Q3e9f41sm6i5vMDLQ9meGta kL1BgkBgwvg1vKMU3Ou0d+mlbgA0SmuIR/PzbUjyyZ6butVNV3306lULRYXQyyc33zr4 xkkA== X-Gm-Message-State: APf1xPC87+Rzq6VIXnP0hprwW3d5PKhEKg8FxT25BaaMa0Cxttge2OjI TszDmeRQFs3vguU6w5Bei7w5oYb0 X-Google-Smtp-Source: AG47ELuTLF3/k1GgRcN2qxGRGtSS5fnjd7RdMlAoVc6etJn0fEESYpFLyBddzDZVeioYbMvmyxVE7w== X-Received: by 10.223.158.69 with SMTP id v5mr20503746wre.142.1520454366227; Wed, 07 Mar 2018 12:26:06 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-e8d9-a19c-5d74-f7c1.holly.idiocy.org. [2001:8b0:3f8:8129:e8d9:a19c:5d74:f7c1]) by smtp.gmail.com with ESMTPSA id s21sm16222229wra.45.2018.03.07.12.26.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Mar 2018 12:26:05 -0800 (PST) Date: Wed, 7 Mar 2018 20:26:03 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180307202603.GA31176@breton.holly.idiocy.org> References: <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83a7vjre52.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Wed, Mar 07, 2018 at 07:26:01PM +0200, Eli Zaretskii wrote: > > I’ve tried adding calls to NSDisableScreenUpdates and > > NSEnableScreenUpdates in redisplay_internal, just to see if it works, > > but I couldn’t get it to work at all: I always saw the blanked frame. > > Either these functions don’t work as advertised or there’s something > > else going on. It’s quite probable I’ve misunderstood > > redisplay_internal. > > If you tell me where did you try to add these calls and perhaps also > what was your mental model of what redisplay_internal does when you > did that, I might be able to help you add this in the right places > (assuming the idea is workable, and I trust your expertise on that). updateFrameSize in nsterm.m calls SET_FRAME_GARBAGED, which appears to just flag the frame for clearing. My assumption was that redisplay first checks if the frame is garbaged and if so clears it, then redraws the contents of the frame. I put the calls to NS(En|Dis)ableScreenUpdates at the start and end of redisplay_internal: modified src/xdisp.c @@ -13868,7 +13868,7 @@ redisplay_internal (void) redisplaying_p = true; block_buffer_flips (); specbind (Qinhibit_free_realized_faces, Qnil); - + ns_disable_screen_updates (); /* Record this function, so it appears on the profiler's backtraces. */ record_in_backtrace (Qredisplay_internal_xC_functionx, 0, 0); @@ -14602,7 +14602,7 @@ redisplay_internal (void) #endif if (interrupt_input && interrupts_deferred) request_sigio (); - + ns_enable_screen_updates (); unbind_to (count, Qnil); RESUME_POLLING; } I realise this isn’t robust, but I was just testing it out. I imagine my failure here is that ns_clear_frame isn’t called from redisplay at all, but somewhere else. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 08 14:16:02 2018 Received: (at 30699) by debbugs.gnu.org; 8 Mar 2018 19:16:03 +0000 Received: from localhost ([127.0.0.1]:51463 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eu11G-0008DF-Mb for submit@debbugs.gnu.org; Thu, 08 Mar 2018 14:16:02 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41715) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eu11F-0008CX-Bt for 30699@debbugs.gnu.org; Thu, 08 Mar 2018 14:16:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eu116-0008Le-T7 for 30699@debbugs.gnu.org; Thu, 08 Mar 2018 14:15:56 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37354) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eu10v-0008GF-VP; Thu, 08 Mar 2018 14:15:42 -0500 Received: from [176.228.60.248] (port=4059 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eu10v-0004GU-EO; Thu, 08 Mar 2018 14:15:41 -0500 Date: Thu, 08 Mar 2018 21:15:37 +0200 Message-Id: <83r2ounzty.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180307202603.GA31176@breton.holly.idiocy.org> (message from Alan Third on Wed, 7 Mar 2018 20:26:03 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <83d10jtd5m.fsf@gnu.org> <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Wed, 7 Mar 2018 20:26:03 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > updateFrameSize in nsterm.m calls SET_FRAME_GARBAGED, which appears to > just flag the frame for clearing. > > My assumption was that redisplay first checks if the frame is garbaged > and if so clears it, then redraws the contents of the frame. > > I put the calls to NS(En|Dis)ableScreenUpdates at the start and end of > redisplay_internal: > > modified src/xdisp.c > @@ -13868,7 +13868,7 @@ redisplay_internal (void) > redisplaying_p = true; > block_buffer_flips (); > specbind (Qinhibit_free_realized_faces, Qnil); > - > + ns_disable_screen_updates (); > /* Record this function, so it appears on the profiler's backtraces. */ > record_in_backtrace (Qredisplay_internal_xC_functionx, 0, 0); > > @@ -14602,7 +14602,7 @@ redisplay_internal (void) > #endif > if (interrupt_input && interrupts_deferred) > request_sigio (); > - > + ns_enable_screen_updates (); > unbind_to (count, Qnil); > RESUME_POLLING; > } > > I realise this isn’t robust, but I was just testing it out. > > I imagine my failure here is that ns_clear_frame isn’t called from > redisplay at all, but somewhere else. I believe it is called from clear_frame, which is called by redraw_frame, which in turn is called by redraw_garbaged_frames. The call to ns_enable_screen_updates is too late, I think: you must enable screen updates before redisplay_internal calls update_frame, because that's where we actually draw stuff on the screen. From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 09 07:10:03 2018 Received: (at 30699) by debbugs.gnu.org; 9 Mar 2018 12:10:03 +0000 Received: from localhost ([127.0.0.1]:51788 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euGqY-0000KL-Pi for submit@debbugs.gnu.org; Fri, 09 Mar 2018 07:10:03 -0500 Received: from mail-wr0-f171.google.com ([209.85.128.171]:37081) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euGqW-0000Jl-Ka for 30699@debbugs.gnu.org; Fri, 09 Mar 2018 07:10:01 -0500 Received: by mail-wr0-f171.google.com with SMTP id z12so8794529wrg.4 for <30699@debbugs.gnu.org>; Fri, 09 Mar 2018 04:10:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=zyjuBwbnzM5Mv3UqPZ9VmHIz/CEIusn0FUTWrKk1Xzw=; b=B/v3gIf+Vt4MKIfYQL85EzDUAy+p64I43rFlvyr7eoFSh9Gz7Z1oLJyxPeYXJvfcLC 8KLnACH2O61ay/MfL+7e22pyrE2BML1WDxrMldne9ll8pYPLTWqDBbNA1d/fd5eBqAjH tQnVNP5ljI1IxhosGqoROOqdqSs0EHs5aCAQ87kdNCXlk9W2841D3XPxNdBdjLodgKDQ 26vLQojaKxtW3Paiw8sbihynQAet9grhkIcB4A9uYsXK+rq4uP/RyC8VxGNQtLBiGqfu h2WMz9JBMjO6jWGe9UtOsfkYeypJpa29AI2wSA/bRukVBCRbvXfMr1gwafk6VdXJy7x0 b7oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=zyjuBwbnzM5Mv3UqPZ9VmHIz/CEIusn0FUTWrKk1Xzw=; b=gbIIvtH+jsa3ESwuLtmDx4/xhheiv5TeShU6nnEY+6WegWfTpI80UGDHGAK6PgtKAp hkdP3/yOzJjJMY5NK/eDTa6vo4K1PXZx6tVxk6hHbDy/PH6WyLeJSR49DQ4cat30ZFd8 l7n1htbpq1Z0IZ9YdBD9FgsWvYX2Zc24c4DjE/yjc78jp5OubbU55qmfgV+OK9B/sr6a FGjtKsCDo+zLrm9liv3J5mEzWSfCe20k8Gn46Ky1oBdynfFlSSbcFhYgtbqO7R8R51xT mfosXON33dulelpnNJAK4+kmGHJQ4h4gKzYfKGtKNjfTnR5IzXOYEDttSkiLBP6hDfnA f9Zg== X-Gm-Message-State: APf1xPDtYV7QVAgnX/OjZID9mg/HptHCxLlJnk7rNFKtWSxRt3Jw0VI1 jdDJazybr7oOlntPMKQychY= X-Google-Smtp-Source: AG47ELtwzRuAboUrsr6P68lR0K6/DNshOJRfv17FgonVO/mHy6MZ0fXw5Mjc6NYyo12yijA4TvI2cQ== X-Received: by 10.223.190.17 with SMTP id n17mr24130604wrh.189.1520597394693; Fri, 09 Mar 2018 04:09:54 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-5176-0ba2-62e5-311d.holly.idiocy.org. [2001:8b0:3f8:8129:5176:ba2:62e5:311d]) by smtp.gmail.com with ESMTPSA id l22sm1213061wre.52.2018.03.09.04.09.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 04:09:54 -0800 (PST) Date: Fri, 9 Mar 2018 12:09:52 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180309120952.GA45581@breton.holly.idiocy.org> References: <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83r2ounzty.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Thu, Mar 08, 2018 at 09:15:37PM +0200, Eli Zaretskii wrote: > > Date: Wed, 7 Mar 2018 20:26:03 +0000 > > From: Alan Third > > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > > > updateFrameSize in nsterm.m calls SET_FRAME_GARBAGED, which appears to > > just flag the frame for clearing. I *finally* worked out what’s going on here. After updateFrameSize is called we end up in x_set_window_size: [window setFrame: wr display: YES]; That resizes and blanks the frame, then asks it to redraw, which takes us, eventually, to drawRect, which does: ns_clear_frame_area (emacsframe, x, y, width, height); block_input (); expose_frame (emacsframe, x, y, width, height); unblock_input (); ns_clear_frame_area does nothing here because the frame is already blank, and expose_frame doesn’t redraw anything because the first thing it does is: /* No need to redraw if frame will be redrawn soon. */ if (FRAME_GARBAGED_P (f)) { TRACE ((stderr, " garbaged\n")); return; } SO, I think that the SET_GARBAGED_FRAME call in updateFrameSize is premature, which probably means my original patch is (surprisingly) the correct fix. Possibly with the addition of SET_GARBAGED_FRAME after the call to setFrame in x_set_window_size, although it makes no obvious difference here. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 09 08:32:27 2018 Received: (at 30699) by debbugs.gnu.org; 9 Mar 2018 13:32:27 +0000 Received: from localhost ([127.0.0.1]:51857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euI8J-0006NW-8q for submit@debbugs.gnu.org; Fri, 09 Mar 2018 08:32:27 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57095) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euI8G-0006NJ-NO for 30699@debbugs.gnu.org; Fri, 09 Mar 2018 08:32:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euI87-00069A-NF for 30699@debbugs.gnu.org; Fri, 09 Mar 2018 08:32:19 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35473) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euI83-00067V-W6; Fri, 09 Mar 2018 08:32:12 -0500 Received: from [176.228.60.248] (port=1240 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1euI83-00036m-EJ; Fri, 09 Mar 2018 08:32:11 -0500 Date: Fri, 09 Mar 2018 15:32:09 +0200 Message-Id: <837eqlwf1i.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180309120952.GA45581@breton.holly.idiocy.org> (message from Alan Third on Fri, 9 Mar 2018 12:09:52 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <834llutstx.fsf@gnu.org> <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Fri, 9 Mar 2018 12:09:52 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > [window setFrame: wr display: YES]; > > That resizes and blanks the frame, then asks it to redraw, which takes > us, eventually, to drawRect, which does: > > ns_clear_frame_area (emacsframe, x, y, width, height); > block_input (); > expose_frame (emacsframe, x, y, width, height); > unblock_input (); > > ns_clear_frame_area does nothing here because the frame is already > blank, and expose_frame doesn’t redraw anything because the first > thing it does is: > > /* No need to redraw if frame will be redrawn soon. */ > if (FRAME_GARBAGED_P (f)) > { > TRACE ((stderr, " garbaged\n")); > return; > } > > SO, I think that the SET_GARBAGED_FRAME call in updateFrameSize is > premature, which probably means my original patch is (surprisingly) > the correct fix. But then what would that fix solve? The above test in expose_frame is not a bug: if the frame is marked as garbaged (and it must be after resizing it), then the call to expose_frame cannot possibly DTRT, so it exits right away without doing anything. We should enter redisplay soon enough, which will redraw the entire frame. If anything, then the call to expose_frame in the control flow that reacts to frame resizing is the one that should be removed, because it's bound to do nothing useful. If removing SET_FRAME_GARBAGED when the frame is resized seems to solve some problem, then you are likely not really resizing the frame, or not resizing it significantly enough to show why SET_FRAME_GARBAGED is really needed. Or maybe I'm just missing something. From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 09 18:24:25 2018 Received: (at 30699) by debbugs.gnu.org; 9 Mar 2018 23:24:25 +0000 Received: from localhost ([127.0.0.1]:52948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euRNB-0006u8-F1 for submit@debbugs.gnu.org; Fri, 09 Mar 2018 18:24:25 -0500 Received: from mail-wm0-f49.google.com ([74.125.82.49]:54261) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euRN9-0006tt-OY for 30699@debbugs.gnu.org; Fri, 09 Mar 2018 18:24:24 -0500 Received: by mail-wm0-f49.google.com with SMTP id e194so6669817wmd.3 for <30699@debbugs.gnu.org>; Fri, 09 Mar 2018 15:24:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=RS4EZE/B2G31w+A3MgApjc+GT+SzxxgsYSOtmwN7re4=; b=C3kutvvP+Auyiiys8D77SVTeeAhnbbz83WWSCRhAdwRCscEFfQ+a/aW9hKsHMjScEs nhLGbRk2eSAmZdjzaCXTtOUUUJRIDgcrl5RaNxNFCFsc+loeu8ZnNhWSls9Co/bps3+6 BiN7kUHI86wRfzeEenmRDlFm7yIJwi7sI2beZMuLeepSSGIBbBWB8nDOQkXkkV+q72DZ PXpgi4yFRAJsKMB+qG0JeSuTfICEIh+hnNeSBXkvAIjHC0TiXhZmo3cAdaiyJDb0waVv u1+WLZSjhGVx49FmwY7fNKjn/2zWt2VkML7Cu6OttqLAXZVg/iZJC1vSN3umtKcumD0G 3AMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=RS4EZE/B2G31w+A3MgApjc+GT+SzxxgsYSOtmwN7re4=; b=FQp64HKWUXks5/N/4A29qUoKNWF1TlbZMjdW80RVpJUDI8iLFCEYBtyUFUziL1G8yh /t9Vm1cKGcRelzEnXsvL0gbAyRXrqYZ1gxp0bRR3JzDBXbo82EmlQvCOexvLYfDA+QX9 41FRCGUpcgmXhSpgdUklYnItgv+18CpekTPKxx+lW+9ADZf1WQfRPB2oF84BaFMuSSJD PMItZCh7w/5+GaoULo2yMjA8dKxBMhYu0sXmR+msj0kEp9Q363rRdi4T4QYIopkgVozX QkuIMjK7lt7f0u5NlH3K4VIcm3Jq+TOsB2emWT1jF/ysvzLtkkhE/twl5ZqE7k/IWcTd QabQ== X-Gm-Message-State: AElRT7GboyImH6NJBGa8LNAyPGzhNSLI+8K2UBMf5el++zlj4VGYmXYF TWOXxS3p6BvX3KsgHQ+4Ciw= X-Google-Smtp-Source: AG47ELt9HBPGYo0Kz8rN6gL5e5pwi6CgbcpWSRXXjVmygQtFMqRQo2BRoQeNTm75tDzv6n3+r7a/JA== X-Received: by 10.28.32.77 with SMTP id g74mr343934wmg.87.1520637857878; Fri, 09 Mar 2018 15:24:17 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-5176-0ba2-62e5-311d.holly.idiocy.org. [2001:8b0:3f8:8129:5176:ba2:62e5:311d]) by smtp.gmail.com with ESMTPSA id e6sm2108268wra.67.2018.03.09.15.24.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 15:24:17 -0800 (PST) Date: Fri, 9 Mar 2018 23:24:15 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180309232415.GB51893@breton.holly.idiocy.org> References: <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <837eqlwf1i.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Fri, Mar 09, 2018 at 03:32:09PM +0200, Eli Zaretskii wrote: > > Date: Fri, 9 Mar 2018 12:09:52 +0000 > > From: Alan Third > > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > > > SO, I think that the SET_GARBAGED_FRAME call in updateFrameSize is > > premature, which probably means my original patch is (surprisingly) > > the correct fix. > > But then what would that fix solve? The above test in expose_frame is > not a bug: if the frame is marked as garbaged (and it must be after > resizing it), then the call to expose_frame cannot possibly DTRT, so > it exits right away without doing anything. We should enter redisplay > soon enough, which will redraw the entire frame. If anything, then > the call to expose_frame in the control flow that reacts to frame > resizing is the one that should be removed, because it's bound to do > nothing useful. > > If removing SET_FRAME_GARBAGED when the frame is resized seems to > solve some problem, then you are likely not really resizing the frame, > or not resizing it significantly enough to show why SET_FRAME_GARBAGED > is really needed. > > Or maybe I'm just missing something. When the window manager resizes the frame it blanks its contents out. This results in a flicker as the full redisplay only happens after the user sees the blanked frame. Removing, or moving, SET_FRAME_GARBAGED allows the frame contents to be redrawn before the user sees the blank frame. What’s displayed is not correct but it’s shown for such a short time that it’s not noticable, at least on my machine, and there is no flicker. It’s not a perfect solution, but it’s better than what we have at the moment, IMO. The other solution I have is to use NSDisableScreenUpdates to prevent updates being flushed to the screen until after redisplay, but that completely breaks resizing with the mouse. If redisplay was able to run during interactive resizing with the mouse then this would work, but that seems to require the NS code to run in its own thread, which looks difficult to implement. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 09 19:26:06 2018 Received: (at 30699) by debbugs.gnu.org; 10 Mar 2018 00:26:06 +0000 Received: from localhost ([127.0.0.1]:52955 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euSKs-0008VO-9X for submit@debbugs.gnu.org; Fri, 09 Mar 2018 19:26:06 -0500 Received: from mail-wr0-f171.google.com ([209.85.128.171]:34846) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euSKq-0008Ut-Nk for 30699@debbugs.gnu.org; Fri, 09 Mar 2018 19:26:05 -0500 Received: by mail-wr0-f171.google.com with SMTP id a27so2881895wra.2 for <30699@debbugs.gnu.org>; Fri, 09 Mar 2018 16:26:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=aaj1aB1G7M4zpg9A3prsMwaOf7sVRmvfOLSeMYKAveY=; b=BnwNiANLrET7wWi16DPVR1vb0gx5u/GBFD49L4+uixPKSSBKDz0JPfw+jjqrL66u/w Lb2zXr9m995HLfyGSM4mdYahwrGpz/mEI8+J1z+4RWeR68H9+eAK1KltabAQVq33b9I3 0eHUgHq2whCt1yquOOq0n9IN29azaFw3+zMNrjJAy3AsEPQhNs82NvtE7Avynd5p+hBP L6g7PIR/gIsufdwIs8F8B04Y+82kIR3ibQomWRAQXhMoamLeGc1PCxnFfpa7fz+qVV9a aUUDqp026oajbK1f2xiocYmr7oXgJYoYLEc7RMgUfxnhBMskWsJMmVnpam81lq+IiG9p /Xrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=aaj1aB1G7M4zpg9A3prsMwaOf7sVRmvfOLSeMYKAveY=; b=kql5EW8saTgsXH13n53xFEt5c2M/sJla2NOHNoUak9ijwgfqHuUiIYXA/nS454qIdD j3jTj9RcmerwrrHzczb4wwC/Hnl0H9bvB84qk5gnTqAwdQpkrtrJD3wPty3grdYXp0eP nD/6Ohdi+9HNEOpJtr7e9RjgJjhf1kqb4BFaGmH8sNgwMurJAcCmcoyLkf+BzK+Kcxqb JSoMANaVF6EreosMYkd4x5BcfQom+TV8PL+RN1SVrkFVeTIL9p84FV6Sx9FdcS+LH/7O bzeu/4wIIXhc7hvILhc1E+Ubo15f6DZDUUuCy0ZvtTgq8DQdxv2ZF3vDl0EylgR/SokX /l9A== X-Gm-Message-State: AElRT7HfrWSRRBNjPjSYQfbuhuO1Bnk91C/pERLta4v2FaP94WQh/hp1 /HOC8TNqYHIesR53tX+1oUA= X-Google-Smtp-Source: AG47ELtKpuS8jrjGocdCG4gsOXqRTx8Wvee9MjiJ4N7cFSsVGTDdhrEeXV3xw21C+LfhmID6fE+xpA== X-Received: by 10.223.195.108 with SMTP id e41mr217051wrg.170.1520641558815; Fri, 09 Mar 2018 16:25:58 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-5176-0ba2-62e5-311d.holly.idiocy.org. [2001:8b0:3f8:8129:5176:ba2:62e5:311d]) by smtp.gmail.com with ESMTPSA id m7sm3690231wrm.35.2018.03.09.16.25.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 16:25:57 -0800 (PST) Date: Sat, 10 Mar 2018 00:25:55 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180310002555.GA54231@breton.holly.idiocy.org> References: <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="NzB8fVQJ5HfG6fxh" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180309232415.GB51893@breton.holly.idiocy.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) --NzB8fVQJ5HfG6fxh Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Fri, Mar 09, 2018 at 11:24:15PM +0000, Alan Third wrote: > The other solution I have is to use NSDisableScreenUpdates to prevent > updates being flushed to the screen until after redisplay, but that > completely breaks resizing with the mouse. I just realised that this isn’t actually hard to get right. Patch attached. I think this is a better solution than the last one. Disabling screen updates just stops them being flushed to the screen, when they’re enabled all the updates happen at once (including the window manager’s frame resize). I guess it’s like drawing to an off‐screen buffer then swapping. -- Alan Third --NzB8fVQJ5HfG6fxh Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-Fix-frame-resize-flicker-on-macOS-bug-30699.patch" >From c382338d44c3ff833e965e1d92106a90b75edec5 Mon Sep 17 00:00:00 2001 From: Alan Third Date: Sat, 10 Mar 2018 00:09:09 +0000 Subject: [PATCH] Fix frame resize flicker on macOS (bug#30699) * src/nsterm.h (ns_enable_screen_updates): New function. * src/nsterm.m (ns_enable_screen_updates): (ns_disable_screen_updates): New functions. (disable_screen_updates_count): Count of number of times we've called NSDisableScreenUpdates. (x_set_window_size): Disable screen updates when not in a live resize loop. * src/xdisp.c (redisplay_internal): Reenable NS screenupdates at end of redisplay. --- src/nsterm.h | 3 +++ src/nsterm.m | 30 ++++++++++++++++++++++++++++++ src/xdisp.c | 3 +++ 3 files changed, 36 insertions(+) diff --git a/src/nsterm.h b/src/nsterm.h index 8b985930ec..df59a7dbd9 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -1160,6 +1160,9 @@ extern void ns_release_autorelease_pool (void *); extern const char *ns_get_defaults_value (const char *key); extern void ns_init_locale (void); +#ifdef NS_IMPL_COCOA +extern void ns_enable_screen_updates (void); +#endif /* in nsmenu */ extern void update_frame_tool_bar (struct frame *f); diff --git a/src/nsterm.m b/src/nsterm.m index 1919c6defa..b4ec384aaf 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -288,6 +288,7 @@ - (NSColor *)colorUsingDefaultColorSpace static BOOL ns_fake_keydown = NO; #ifdef NS_IMPL_COCOA static BOOL ns_menu_bar_is_hidden = NO; +static int disable_screen_updates_count = 0; #endif /*static int debug_lock = 0; */ @@ -727,6 +728,26 @@ Free a pool and temporary objects it refers to (callable from C) } +#ifdef NS_IMPL_COCOA +static void +ns_disable_screen_updates (void) +{ + NSDisableScreenUpdates (); + disable_screen_updates_count++; +} + +void +ns_enable_screen_updates (void) +{ + while (disable_screen_updates_count > 0) + { + NSEnableScreenUpdates (); + disable_screen_updates_count--; + } +} +#endif + + static BOOL ns_menu_bar_should_be_hidden (void) /* True, if the menu bar should be hidden. */ @@ -1877,6 +1898,15 @@ -(void)remove block_input (); +#ifdef NS_IMPL_COCOA + /* To prevent showing the user a blank frame, stop updates being + flushed to the screen until after redisplay has completed. This + breaks live resize (resizing with a mouse), so don't do it if + we're in a live resize loop. */ + if (![view inLiveResize]) + ns_disable_screen_updates (); +#endif + if (pixelwise) { pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); diff --git a/src/xdisp.c b/src/xdisp.c index 9170d6b777..d4fdb44b32 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -14599,6 +14599,9 @@ redisplay_internal (void) end_of_redisplay: #ifdef HAVE_NS ns_set_doc_edited (); +#ifdef NS_IMPL_COCOA + ns_enable_screen_updates (); +#endif #endif if (interrupt_input && interrupts_deferred) request_sigio (); -- 2.16.1 --NzB8fVQJ5HfG6fxh-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 09 20:18:27 2018 Received: (at 30699) by debbugs.gnu.org; 10 Mar 2018 01:18:28 +0000 Received: from localhost ([127.0.0.1]:52978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euT9X-0001N3-Mt for submit@debbugs.gnu.org; Fri, 09 Mar 2018 20:18:27 -0500 Received: from mail-qt0-f178.google.com ([209.85.216.178]:38434) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euT9W-0001Mq-Q2 for 30699@debbugs.gnu.org; Fri, 09 Mar 2018 20:18:27 -0500 Received: by mail-qt0-f178.google.com with SMTP id n12so13116998qtl.5 for <30699@debbugs.gnu.org>; Fri, 09 Mar 2018 17:18:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Xdhd8z06eE3Tez6V6KSDEN4MdRE8PMgIgCw8ie8dKYA=; b=I3wdzvAaKv2IRV6k/7WPx4M9tn5ywvyU2q1V2HbB4OnCA/hecentiPWfX20fkxWuuY y4GnVJ2EmgkoYQOkVE6mEpQUjwnkvpY43rD6uXpytnxMTHx64Wm4QVPmvczUisIh7HZc z3VuDrS948JaioGad9cBHAOVNMJtXaylu8Ah8Li9+F6AhFdYKifdrKF3JTOKJNWv1ejW jghVw8biyS4dk2Gz+jtWZ6UVBXUGGkoSCeCuX55BzCF3qDehCYHqPinHkhCl9vhHCtjU oYnbANj7kMgmZtYFcohKIxcBc74CU746ZXV4BRZ9sulbK4MxPfJsj2ia/iU7LttK4ey4 hP/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Xdhd8z06eE3Tez6V6KSDEN4MdRE8PMgIgCw8ie8dKYA=; b=T8q7Kap5riDauv68NMINYQlTeDZPQBYil0aKRL6Ij7omQLBtH8hWXo8LBoNaV3rKQ7 nV9CTtsrK5NnMYqLkfymoZ2mMNVOikEabOhtHqh7odlgyLfMoPQzO5f5OmtIqcfhuCIN LeZwDRCKXWPC3tz9OC07qZpGC5/Eub0vUcD5U3ASq59yIA/soqNlcdRPT/B+/ri1BFuU 5da+PDV1uFnpfXdenpX/tpX4Qse19rjkWhWyvfvug1+cS+2Cfu+/hlyPiIm8NoMTWC0x JLL9XLOGAA/VbOxeN5zsObU7V1qahkZECDyES0TBlnQxgjfwop1OywPNJuW9oQt/2vNq qtVQ== X-Gm-Message-State: AElRT7GpRofXyB7IP0fWzGt0yCjVRbt4jpDDtItOU2HCm1IuLrxo3ILu eF96vbO0d4CbybskVqHvuF21UdXX/MeZOJfaIzw= X-Google-Smtp-Source: AG47ELskU2wSAV04vZWypOTBqlo2okpMG7YsUkE3ZAbAC4TMH5Kv/xSOcV+HaIvidudnc1b98HuXVNQ71iFOaI4F8A0= X-Received: by 10.200.52.73 with SMTP id v9mr738319qtb.66.1520644701403; Fri, 09 Mar 2018 17:18:21 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.54.65 with HTTP; Fri, 9 Mar 2018 17:18:20 -0800 (PST) In-Reply-To: <20180310002555.GA54231@breton.holly.idiocy.org> References: <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> From: Aaron Jensen Date: Fri, 9 Mar 2018 17:18:20 -0800 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Alan Third Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 30699 Cc: Eli Zaretskii , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Fri, Mar 9, 2018 at 4:25 PM, Alan Third wrote: > Patch attached. I think this is a better solution than the last one. This works for me. Thank you! From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 10 03:15:54 2018 Received: (at 30699) by debbugs.gnu.org; 10 Mar 2018 08:15:54 +0000 Received: from localhost ([127.0.0.1]:53056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euZfW-0005cK-Gx for submit@debbugs.gnu.org; Sat, 10 Mar 2018 03:15:54 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60462) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euZfU-0005c5-FO for 30699@debbugs.gnu.org; Sat, 10 Mar 2018 03:15:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euZfO-00052c-60 for 30699@debbugs.gnu.org; Sat, 10 Mar 2018 03:15:47 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52221) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euZfJ-00051m-9I; Sat, 10 Mar 2018 03:15:41 -0500 Received: from [176.228.60.248] (port=2516 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1euZfI-0007Qs-J1; Sat, 10 Mar 2018 03:15:41 -0500 Date: Sat, 10 Mar 2018 10:15:40 +0200 Message-Id: <83k1ukuz0z.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180309232415.GB51893@breton.holly.idiocy.org> (message from Alan Third on Fri, 9 Mar 2018 23:24:15 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Fri, 9 Mar 2018 23:24:15 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > When the window manager resizes the frame it blanks its contents out. > This results in a flicker as the full redisplay only happens after the > user sees the blanked frame. Removing, or moving, SET_FRAME_GARBAGED > allows the frame contents to be redrawn before the user sees the blank > frame. > > What’s displayed is not correct but it’s shown for such a short time > that it’s not noticable, at least on my machine, and there is no > flicker. But without setting the frame's garbaged flag, the following redisplay might not produce an accurate display, and you will have that incorrect display longer than reasonable. The garbaged flag _must_ be set to force a complete redraw of the frame. If you can achieve the same effect by other means, or if you can show that the frame will be fully redrawn anyway, that could be a solution, but the frame _must_ be fully redrawn in this situation, after the glyph matrices of all of its windows are reallocated to reflect the new dimensions. So maybe a better solution would be to avoid blanking the frame when it's resized. Is that possible on NS? > It’s not a perfect solution, but it’s better than what we have at the > moment, IMO. Unless I'm misunderstanding, it's worse, actually. expose_frame is not prepared to deal with changed dimensions, it assumes that all the dimensions are as last recorded, and that the glyph matrices accurately describe what should be shown on the glass. Calling expose_frame when these assumptions are blatantly false is asking for trouble. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 10 03:30:40 2018 Received: (at 30699) by debbugs.gnu.org; 10 Mar 2018 08:30:40 +0000 Received: from localhost ([127.0.0.1]:53060 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euZtn-000612-R0 for submit@debbugs.gnu.org; Sat, 10 Mar 2018 03:30:40 -0500 Received: from eggs.gnu.org ([208.118.235.92]:35187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euZtm-00060q-BC for 30699@debbugs.gnu.org; Sat, 10 Mar 2018 03:30:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euZtg-0001VI-8J for 30699@debbugs.gnu.org; Sat, 10 Mar 2018 03:30:33 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52327) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euZtc-0001Oi-A2; Sat, 10 Mar 2018 03:30:28 -0500 Received: from [176.228.60.248] (port=2520 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1euZtb-0002Pq-9i; Sat, 10 Mar 2018 03:30:27 -0500 Date: Sat, 10 Mar 2018 10:30:27 +0200 Message-Id: <83h8pouycc.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180310002555.GA54231@breton.holly.idiocy.org> (message from Alan Third on Sat, 10 Mar 2018 00:25:55 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <83tvtus8rc.fsf@gnu.org> <20180305192331.GA26656@breton.holly.idiocy.org> <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Sat, 10 Mar 2018 00:25:55 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > diff --git a/src/nsterm.m b/src/nsterm.m > index 1919c6defa..b4ec384aaf 100644 > --- a/src/nsterm.m > +++ b/src/nsterm.m > @@ -288,6 +288,7 @@ - (NSColor *)colorUsingDefaultColorSpace > static BOOL ns_fake_keydown = NO; > #ifdef NS_IMPL_COCOA > static BOOL ns_menu_bar_is_hidden = NO; > +static int disable_screen_updates_count = 0; Doesn't making this static mean potential trouble if redisplay is run from a non-main thread? > diff --git a/src/xdisp.c b/src/xdisp.c > index 9170d6b777..d4fdb44b32 100644 > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -14599,6 +14599,9 @@ redisplay_internal (void) > end_of_redisplay: > #ifdef HAVE_NS > ns_set_doc_edited (); > +#ifdef NS_IMPL_COCOA > + ns_enable_screen_updates (); > +#endif > #endif Can x_set_window_size be called only from redisplay_internal? If not, doesn't this risk leaving the updates disabled, if x_set_window_size is called from some other place? Also, redisplay_internal has a few early returns which don't go through end_of_redisplay -- are you sure they can never happen in this situation? For example, what if popup_activated returns non-zero? Finally, this code needs comments that explain why this is done. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 10 18:07:16 2018 Received: (at 30699) by debbugs.gnu.org; 10 Mar 2018 23:07:16 +0000 Received: from localhost ([127.0.0.1]:54567 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euna8-0001Es-CQ for submit@debbugs.gnu.org; Sat, 10 Mar 2018 18:07:16 -0500 Received: from mail-wr0-f182.google.com ([209.85.128.182]:38698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euna7-0001Ef-27 for 30699@debbugs.gnu.org; Sat, 10 Mar 2018 18:07:15 -0500 Received: by mail-wr0-f182.google.com with SMTP id n7so12214382wrn.5 for <30699@debbugs.gnu.org>; Sat, 10 Mar 2018 15:07:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=mp4uRk4rLtm6bPdZDJMa+qK/BzFKTuLvxY4Slv9QaYU=; b=NL9WJBsK4Soa/e9oS/iy2FLpnXR2JayFD0XB6vZ6mIrQ3E19njcBl9EUWnzkoX/amn EQGOSek2etdfKilxF//DT5RdUo9hziOSBAA5XgfzKfkc63JIBlxZCnYP0zvbpQZxiSAx LBveYQF+6VeiPBHb9LwQ4lsyJ8X3EW4weDwt7sSiEzEuFXW9RpAtA5D9E3XEhj61/UBH a10BHquYNaaCqzRQTsT15BwlqiBxflZgIQPEeN5GoB4VFR6zFc2ju3CR56Nfb8il1Ree bHqR8I5i88sylrVvfcS6Gmt50tBzzvnHsiy8RIew9Y5zPdcjDc9HKl23b1AjPM7zEqCE 1Ynw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=mp4uRk4rLtm6bPdZDJMa+qK/BzFKTuLvxY4Slv9QaYU=; b=TA3FzeLv7U7CAZKD5dLsappYxh9eaxZD0oG59Jcqdid6zWPtkNrIhdGoEhwIfOG2PX qj707AakJiXtrpt7ecTrEWxhbXQXVnaYXHpHup3i0EY6UOcdVpY/2gFe+IKEZzH8Y7pI K6rZOkfiD4g390kVoRM4k2FdDcXtCdm9HetzRMYAOfMwIryLJ+bENdRiWupTfh9D6S92 FLx8oElulwY3o26xNVRmqCwg0NW2cxmTyhi0GerpA03TYfPG5zBDayw8zmCjFlmJ7+Sv n3jn5vG7l38sKuNvdljoUWCUa5jnNrXR0mOPHDa5HPFVpi+1ql+D9dxJHQjh6VE1RjL0 w7LQ== X-Gm-Message-State: AElRT7HkEmwINKP1gBWhoJZrTbE5Zwy69ElBw1/oP+TpdUbre5yiS6Ji JMDAPD0SYU2lzavipG4ZwzY= X-Google-Smtp-Source: AG47ELvBG5BwvMwNf7arcRqqcvel7Kb7HwzGBTNZttVE7NOreiCtNd4wv5fC9yGlDCp+0HZ794VcDg== X-Received: by 10.223.129.80 with SMTP id 74mr1591258wrm.190.1520723229399; Sat, 10 Mar 2018 15:07:09 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-1c36-5302-45e0-3731.holly.idiocy.org. [2001:8b0:3f8:8129:1c36:5302:45e0:3731]) by smtp.gmail.com with ESMTPSA id t91sm8093965wrc.21.2018.03.10.15.07.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 10 Mar 2018 15:07:08 -0800 (PST) Date: Sat, 10 Mar 2018 23:07:06 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180310230706.GB55832@breton.holly.idiocy.org> References: <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83h8pouycc.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Sat, Mar 10, 2018 at 10:30:27AM +0200, Eli Zaretskii wrote: > > Date: Sat, 10 Mar 2018 00:25:55 +0000 > > From: Alan Third > > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > > > diff --git a/src/nsterm.m b/src/nsterm.m > > index 1919c6defa..b4ec384aaf 100644 > > --- a/src/nsterm.m > > +++ b/src/nsterm.m > > @@ -288,6 +288,7 @@ - (NSColor *)colorUsingDefaultColorSpace > > static BOOL ns_fake_keydown = NO; > > #ifdef NS_IMPL_COCOA > > static BOOL ns_menu_bar_is_hidden = NO; > > +static int disable_screen_updates_count = 0; > > Doesn't making this static mean potential trouble if redisplay is run > from a non-main thread? I’m not aware of any problems with global static variables, but I’m certainly no expert. What is the risk? > > diff --git a/src/xdisp.c b/src/xdisp.c > > index 9170d6b777..d4fdb44b32 100644 > > --- a/src/xdisp.c > > +++ b/src/xdisp.c > > @@ -14599,6 +14599,9 @@ redisplay_internal (void) > > end_of_redisplay: > > #ifdef HAVE_NS > > ns_set_doc_edited (); > > +#ifdef NS_IMPL_COCOA > > + ns_enable_screen_updates (); > > +#endif > > #endif > > Can x_set_window_size be called only from redisplay_internal? If not, > doesn't this risk leaving the updates disabled, if x_set_window_size > is called from some other place? No, I believe it’s never called from redisplay_internal. But x_set_window_size always leaves the frame blank (and there’s no way round that as far as I can see), so there’s not much risk in disabling screen updates until redisplay completes. All we’re doing is preventing the user from seeing a blank frame. Or is there some way for the frame to be redrawn other than redisplay or expose_frame? > Also, redisplay_internal has a few early returns which don't go > through end_of_redisplay -- are you sure they can never happen in this > situation? For example, what if popup_activated returns non-zero? Nope. Is there a better place to put it? For example is there a hook that runs when redisplay exits? -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 11 12:29:16 2018 Received: (at 30699) by debbugs.gnu.org; 11 Mar 2018 16:29:16 +0000 Received: from localhost ([127.0.0.1]:55608 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ev3qV-0005lZ-Ih for submit@debbugs.gnu.org; Sun, 11 Mar 2018 12:29:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:36675) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ev3qS-0005lH-UM for 30699@debbugs.gnu.org; Sun, 11 Mar 2018 12:29:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ev3qM-0004HS-Oh for 30699@debbugs.gnu.org; Sun, 11 Mar 2018 12:29:07 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42930) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ev3qI-0004FR-OJ; Sun, 11 Mar 2018 12:29:02 -0400 Received: from [176.228.60.248] (port=1373 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ev3qI-0004se-4f; Sun, 11 Mar 2018 12:29:02 -0400 Date: Sun, 11 Mar 2018 18:29:05 +0200 Message-Id: <83a7vetw32.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180310230706.GB55832@breton.holly.idiocy.org> (message from Alan Third on Sat, 10 Mar 2018 23:07:06 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <83muzms3i6.fsf@gnu.org> <20180306225502.GA30546@breton.holly.idiocy.org> <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Sat, 10 Mar 2018 23:07:06 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > > > +static int disable_screen_updates_count = 0; > > > > Doesn't making this static mean potential trouble if redisplay is run > > from a non-main thread? > > I’m not aware of any problems with global static variables, but I’m > certainly no expert. What is the risk? That one thread sets the variable, and another tries to use the value, believing that it was set by that other thread. > > Can x_set_window_size be called only from redisplay_internal? If not, > > doesn't this risk leaving the updates disabled, if x_set_window_size > > is called from some other place? > > No, I believe it’s never called from redisplay_internal. Then how do we guarantee that these two calls, one from x_set_window_size, the other from redisplay_internal, will be balanced, and you never end up with screen updates disabled when you don't intend? > But x_set_window_size always leaves the frame blank (and there’s no > way round that as far as I can see), so there’s not much risk in > disabling screen updates until redisplay completes. All we’re doing is > preventing the user from seeing a blank frame. The question is: can x_set_window_size be called without a redisplay happening soon enough, e.g. if Emacs is busy doing some lengthy calculation? > > Also, redisplay_internal has a few early returns which don't go > > through end_of_redisplay -- are you sure they can never happen in this > > situation? For example, what if popup_activated returns non-zero? > > Nope. Is there a better place to put it? For example is there a hook > that runs when redisplay exits? Unless I'm misremembering, I don't think there is such a hook. From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 11 20:46:51 2018 Received: (at 30699) by debbugs.gnu.org; 12 Mar 2018 00:46:51 +0000 Received: from localhost ([127.0.0.1]:55870 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evBc1-00046i-3E for submit@debbugs.gnu.org; Sun, 11 Mar 2018 20:46:50 -0400 Received: from mail-wr0-f180.google.com ([209.85.128.180]:36758) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evBc0-00046V-4J for 30699@debbugs.gnu.org; Sun, 11 Mar 2018 20:46:48 -0400 Received: by mail-wr0-f180.google.com with SMTP id d10so1542124wrf.3 for <30699@debbugs.gnu.org>; Sun, 11 Mar 2018 17:46:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=ti5dY1SC33t4d39o0wrV4d+bsSjLyDu4I4BlRuGEGJY=; b=aYQ9EwRpQjbrYati5+3WmkRTbBWBRKGGcDLIRMCukfbYjmHmtySc07rxtPs8mI0eRf Ttzgtv8YWd6GwWsI2QvRd7SQqBvgJCBPF1UpsJlVgi3BgWpWvs4bKvkUnB/eZ7rTr3B/ /CzfQQLamOLs0paS3Y+JmzIMQWzcZZAuaajbZVPNtg0AeVn0GpkOGyNqLPuQF0MTkYMQ QNXUjo7mZArZOMo6UUmlKcvpByQXs88PJEcE0NvMsbyrKqnllzwyf6tncIJaqhpGFc0t e+47RDzMD27NdndTPa+54dLAn6CivdlXjkzxcXQloRfNzHm0+GWbYHpyGbAN/dzoetOl kllQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=ti5dY1SC33t4d39o0wrV4d+bsSjLyDu4I4BlRuGEGJY=; b=HaMXpi/26n4udj/VCzfKnDeOwH1Izfh14k4qYLmPoUU3bAezacVSiGtPouP/z8BW5o BhzASMzv1/ouAHQuae8amtb0ji/DRP6Kefv9mA6+QfN4Y3W3gs2nQIbfz9rLkBbE9Tu/ ek5MVlP4Cg/scRRTkODpnktqQAQWdhE7VQuDz/tQ25aysT9xnPruMu2WlZDzbcwBua6c CUP5DP8uyQecIvRUBTJenP3e9DyFWsQQgnn4uNajjlZNdUhSoA79GwflK3/nGggoE8ZG yNxIGmLZIjCxthM9FFVU9w+KBnx5us9QwZX/InpRFxfGO/xyF0OxR+rRfuvaNrsI8DAW 7LWA== X-Gm-Message-State: AElRT7Hrgk3fBDgpfP9mbZOG0KkPt/RNcIlqnUDltHCMzMzJYaD0JHfJ Eih1PfpeHeiKcgBZKyV0I5M= X-Google-Smtp-Source: AG47ELtBcH4U5u0yQy2laDjIWweif8wamOgbtcpAHS+AVSwj038DKcLcjoxglJayGxVVrcVmhBURkQ== X-Received: by 10.223.149.68 with SMTP id 62mr4971384wrs.249.1520815602346; Sun, 11 Mar 2018 17:46:42 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-811b-a201-7b2a-8bed.holly.idiocy.org. [2001:8b0:3f8:8129:811b:a201:7b2a:8bed]) by smtp.gmail.com with ESMTPSA id m7sm11454689wrm.35.2018.03.11.17.46.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 11 Mar 2018 17:46:40 -0700 (PDT) Date: Mon, 12 Mar 2018 00:46:38 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180312004638.GA56747@breton.holly.idiocy.org> References: <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83a7vetw32.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Sun, Mar 11, 2018 at 06:29:05PM +0200, Eli Zaretskii wrote: > > Date: Sat, 10 Mar 2018 23:07:06 +0000 > > From: Alan Third > > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > > > > Can x_set_window_size be called only from redisplay_internal? If not, > > > doesn't this risk leaving the updates disabled, if x_set_window_size > > > is called from some other place? > > > > No, I believe it’s never called from redisplay_internal. > > Then how do we guarantee that these two calls, one from > x_set_window_size, the other from redisplay_internal, will be > balanced, and you never end up with screen updates disabled when you > don't intend? > > > But x_set_window_size always leaves the frame blank (and there’s no > > way round that as far as I can see), so there’s not much risk in > > disabling screen updates until redisplay completes. All we’re doing is > > preventing the user from seeing a blank frame. > > The question is: can x_set_window_size be called without a redisplay > happening soon enough, e.g. if Emacs is busy doing some lengthy > calculation? OK, so this plan is a non‐starter. Can I check an assumption I’m making? Am I able to call redisplay whenever I want? That is, does calling it ever result in a longjmp? -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 12 12:40:09 2018 Received: (at 30699) by debbugs.gnu.org; 12 Mar 2018 16:40:09 +0000 Received: from localhost ([127.0.0.1]:57469 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evQUb-0005Bk-AE for submit@debbugs.gnu.org; Mon, 12 Mar 2018 12:40:09 -0400 Received: from eggs.gnu.org ([208.118.235.92]:49910) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evQUZ-0005BT-2K for 30699@debbugs.gnu.org; Mon, 12 Mar 2018 12:40:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evQUT-000551-1q for 30699@debbugs.gnu.org; Mon, 12 Mar 2018 12:40:01 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33242) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evQUO-00052H-AR; Mon, 12 Mar 2018 12:39:56 -0400 Received: from [176.228.60.248] (port=2814 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1evQUN-0006WM-9x; Mon, 12 Mar 2018 12:39:55 -0400 Date: Mon, 12 Mar 2018 18:39:59 +0200 Message-Id: <83k1uhs0ww.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180312004638.GA56747@breton.holly.idiocy.org> (message from Alan Third on Mon, 12 Mar 2018 00:46:38 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Mon, 12 Mar 2018 00:46:38 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > Am I able to call redisplay whenever I want? Not sure about "whenever I want" part. > That is, does calling it ever result in a longjmp? I think it never longjmps, even on TTYs, where C-g generates SIGINT. But I may be wrong here. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 12 19:42:48 2018 Received: (at 30699) by debbugs.gnu.org; 12 Mar 2018 23:42:49 +0000 Received: from localhost ([127.0.0.1]:57833 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evX5c-0007mj-Nt for submit@debbugs.gnu.org; Mon, 12 Mar 2018 19:42:48 -0400 Received: from mail-wr0-f176.google.com ([209.85.128.176]:36954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evX5b-0007mV-Bn for 30699@debbugs.gnu.org; Mon, 12 Mar 2018 19:42:47 -0400 Received: by mail-wr0-f176.google.com with SMTP id z12so17563880wrg.4 for <30699@debbugs.gnu.org>; Mon, 12 Mar 2018 16:42:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=Eqx+jCm90rkdo6SM4X8R0d5bgqQ4CvGe4QHuLWhj5ZU=; b=DXKCUoI4gN52cEmDRnMkGtxFz2jHtWEO4VF5DoDjYZfamCO1obb1hNzMvIjZCeLyuG LJ8L08F8aEYY0r9WkBwjzfT3DbUxO8zQ2d94I80KDCEdSXBm4uD4dagpQ7chWgo14KHK KVIoVnIRw+0hEEYEYyt1ppbOYZwB9fqx7NSV6I69e1kJreZkELbuCqtq/WW8OY0hGWtV GmYyS6jvVg67APcjvQBBdTw+aArDckogSj+skVX1UPItfW4E9hCPzKsHxeLxAhwqRFIY HfAQGKBA/PsofcVtGaykgsQqQnyZu+rf2f2WUbboyWYrEof5x2Mh36zxJLa7jZQLqGUm WplQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=Eqx+jCm90rkdo6SM4X8R0d5bgqQ4CvGe4QHuLWhj5ZU=; b=KWNhlkdhsyJaS2IlMUFgWSXzMjfriRWtbN0awVsDwXB5OalqqkeQHHRSTn8CX+AbZM lXSecbxLYr8UJA/arALxy5HFlxaum0tpP7Up4vXKnYooapcpgKY/Mpj6QSiQmlbYSzRB eXndh64HTCshrATZX294YKBkIOllqbKtCchu7aa5bZ40twhu23T7NbTcQRggwlfogE0q Koukg8BtCBiWo5H4G0bGLum9rUhd+ArmP6jr+2meKDoeRcBKojyZlTlRoB5VjlMVg4MQ zBBQEQWP6HJGmm8j0VO06bXZJVlBlqqFYAM4zeoPZ7MR0nFEYKpcZQ4ZOSmZVPXbgfD4 DK6w== X-Gm-Message-State: AElRT7ExOodJeqS+G+G5h8qoFlWCIBFClEZOAGzeGGqAHUaYLZ/u5g3P SOOGVXNdwjL59bEqu+2HrL8= X-Google-Smtp-Source: AG47ELsL47uhNan0BrzrWL+tJzMCb17OhYrmk+rUqtE5tpMkRtmT4I8168XydbI0yUNOlxdnF+AHVA== X-Received: by 10.223.134.12 with SMTP id 12mr7401411wrv.193.1520898161177; Mon, 12 Mar 2018 16:42:41 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-b5c3-88c2-f523-e94d.holly.idiocy.org. [2001:8b0:3f8:8129:b5c3:88c2:f523:e94d]) by smtp.gmail.com with ESMTPSA id o47sm2903448wrc.7.2018.03.12.16.42.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Mar 2018 16:42:40 -0700 (PDT) Date: Mon, 12 Mar 2018 23:42:39 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180312234239.GA77657@breton.holly.idiocy.org> References: <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <83k1uhs0ww.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83k1uhs0ww.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Mon, Mar 12, 2018 at 06:39:59PM +0200, Eli Zaretskii wrote: > > Date: Mon, 12 Mar 2018 00:46:38 +0000 > > From: Alan Third > > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > > > That is, does calling [redisplay] ever result in a longjmp? > > I think it never longjmps, even on TTYs, where C-g generates SIGINT. > But I may be wrong here. So would it be acceptable to just call redisplay after the resize? modified src/nsterm.m @@ -7007,6 +7007,7 @@ - (void) updateFrameSize: (BOOL) delay to be a noop. (bug#28872) */ wr = NSMakeRect (0, 0, neww, newh); [view setFrame: wr]; + redisplay (); // to do: consider using [NSNotificationCenter postNotificationName:]. [self windowDidMove: // Update top/left. This seems far too easy, so I’m sure there must be some reason it can’t work correctly. This code can only run on the main thread, if that’s a concern. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 13 08:19:17 2018 Received: (at 30699) by debbugs.gnu.org; 13 Mar 2018 12:19:17 +0000 Received: from localhost ([127.0.0.1]:58172 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evitg-00081J-UA for submit@debbugs.gnu.org; Tue, 13 Mar 2018 08:19:17 -0400 Received: from mail-wr0-f173.google.com ([209.85.128.173]:36406) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evitf-000813-Sc for 30699@debbugs.gnu.org; Tue, 13 Mar 2018 08:19:16 -0400 Received: by mail-wr0-f173.google.com with SMTP id d10so9586577wrf.3 for <30699@debbugs.gnu.org>; Tue, 13 Mar 2018 05:19:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=p3xugjw2KfBD1FCXKmbybIF1kdCOFc7emv3EaZFAN+I=; b=bvuA3pmjCOy33ShQfOLPZUp17zt199O7ph7AUS+6tkHu2ex54mNuxb3tCRQF9w4jo8 tUB36W+jpQgaObexk8HBt3wDa6t+lvVDnQg0s8BkiK1TZM7I1+uzEJH8W/UQZ0Yii5jt 9McMNjfSbBw6WrSGxE3KxsozuTPttnV18bLXZKb2pHvmFurosR7xQYjvccBsLd4AvtAw Tdz2AclUmehT68rE72sKtGp7p5B4OB8JPw8DEnIOKHilvPCVqKHtlIO5fABEWV5nIIOh 2cXwGISSKHZeBucJgM4A3VLsTwFvgPr1pcUtLDuSWcdgN7TK+htJg9iGMw3bEyz3TcVd 4KoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=p3xugjw2KfBD1FCXKmbybIF1kdCOFc7emv3EaZFAN+I=; b=mFG5nMWqk/lVaUEkmt4EFjHFPzkfw06WAUk0oFeuDMCmkgsKk49giJx17olVSNGh29 DolsiOHjf8fKiYijJON0e4GoJon0Ic7EDMV15GTJLzR3T1JU5Cl6j7/ck8QxDBhY1bnP WROWMRZOEyQ157z59aWpuJaUaXLgkoQ8X/62FxYbHzfDwOofDIK6sIvuWZudJWgwDOVu qZxQGK/Put8c6H15kIdMXHd3cbZIAMCmOvIZnLv2Itda84t18vCbMHPnSjpFuSwhUnv8 GySI7VLjIaAxzffw99hd1H/xt2+A5ZrM+MwW7FspNkQmABAE9WKsC6SvJFd1UPoAsSql RPaQ== X-Gm-Message-State: AElRT7GoogwVmTLzhrIeaFeE53kAgFvzcLftIMQk38h81dpBPJ2b80JR 74H4U3M6Qs3bFmDMaKn2xT4= X-Google-Smtp-Source: AG47ELuWJX5pmqxY4mUVTwL0Qc+x3F4Ih9S6HU0qjk3tiLCfCHIok49g8ngv7MbQF9xzXQleAY9e3g== X-Received: by 10.28.10.134 with SMTP id 128mr631740wmk.136.1520943549869; Tue, 13 Mar 2018 05:19:09 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-b5c3-88c2-f523-e94d.holly.idiocy.org. [2001:8b0:3f8:8129:b5c3:88c2:f523:e94d]) by smtp.gmail.com with ESMTPSA id l14sm109448wrh.62.2018.03.13.05.19.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Mar 2018 05:19:07 -0700 (PDT) Date: Tue, 13 Mar 2018 12:19:04 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180313121904.GA79707@breton.holly.idiocy.org> References: <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <83k1uhs0ww.fsf@gnu.org> <20180312234239.GA77657@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180312234239.GA77657@breton.holly.idiocy.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Mon, Mar 12, 2018 at 11:42:39PM +0000, Alan Third wrote: > So would it be acceptable to just call redisplay after the resize? > > modified src/nsterm.m > @@ -7007,6 +7007,7 @@ - (void) updateFrameSize: (BOOL) delay > to be a noop. (bug#28872) */ > wr = NSMakeRect (0, 0, neww, newh); > [view setFrame: wr]; > + redisplay (); > > // to do: consider using [NSNotificationCenter postNotificationName:]. > [self windowDidMove: // Update top/left. Nah, forget it. I tried it and found an easily reproducible crash. I think the only solution left is to take a copy of the contents of the frame, resize, then copy the contents back. I don’t know how to do that and a quick google search reveals nothing helpful. Apple assume you’ll always be able to redraw the contents of the window on resize, afaict, so they don’t provide any way of retaining the pre‐resize contents. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 13 11:34:20 2018 Received: (at 30699) by debbugs.gnu.org; 13 Mar 2018 15:34:20 +0000 Received: from localhost ([127.0.0.1]:59699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evlwQ-0004y4-GG for submit@debbugs.gnu.org; Tue, 13 Mar 2018 11:34:18 -0400 Received: from mail-qt0-f176.google.com ([209.85.216.176]:39374) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evlwO-0004xp-Li for 30699@debbugs.gnu.org; Tue, 13 Mar 2018 11:34:16 -0400 Received: by mail-qt0-f176.google.com with SMTP id a26so12388qtj.6 for <30699@debbugs.gnu.org>; Tue, 13 Mar 2018 08:34:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1V15z1XSzd533+POMnqCJQf725Qge1X1YvZJ3Oqfms4=; b=azSYZMBdCWJL4oLOFqoE+0kcVvfB+gmvvfwAXSsYWT/vpCOZRAWM1+mNNl2507mKWn vWJih3EcysrT7jKkFOBWMFJo+a6zzm5uVKK8pVpJj3Y9c4qJxKC912Of6fHHjPMTu3n7 evtsFmHDHakI8Ub1+eunZIl5rHrvYrHJH1AVqpUAUokSuxSGy8emKuDV2NlUh6XU+95b gkNQeUnlKK7FI8Wx1gWBp44zhctkYzJevBQA0oC7VMXmiwROe/c0u3bKHRY/lmZkM777 mrxROMJeQkM6vqs0tVkxGJCL8AmUZyINfe1O4J3y8fnGaMiAN5fQ8Iy5e3MMv4Jd3rYQ nDZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1V15z1XSzd533+POMnqCJQf725Qge1X1YvZJ3Oqfms4=; b=S5yEKsBJBlEd4OLLIE0FYFmHZe6VvAyj6BGfmvAXctHTyQDvynvDrb51RPyfTv7zgv +NyheULXXZ95Tk+klKptZpnkgCp3BXmcadyIBtMTDQ3sIK7RDEt6deooXLF2Q9HaPVha JVJRGCRWU3vT4uypNTHqaVu4w1snnjOIzgsTOEE1mjVueQ022CWN+7G32kk0d5O0Qeii n9t19n0jfR1Hf9RduRV++8cKqm1QwIWAyKGLD0Xkkyls+Pukwn4k8Q4khZU8sIGYqWCE UOAF8MjjLF9OvDUXa2I/OMEfnyJEiCKm44npEjB63Fvz04kS7jmxpE4CjI78wmHhxvwH EtGA== X-Gm-Message-State: AElRT7FIA797HThRufZSVQsfEH4Cd7zLJ1Z/GviwpThu2LUrngDBOZQy 8bw5c0INThxKXTE8QtvY14neiGFU8O4qqTPdk9v26g== X-Google-Smtp-Source: AG47ELtEL/u6S5pxXdN8umtkSvLb3/Glnp7pGdXnCM92jBiRGJOt0uvHszEPDg2PeINd+aypFWm5322JxFX9SFeldYo= X-Received: by 10.237.35.76 with SMTP id i12mr1683903qtc.134.1520955251346; Tue, 13 Mar 2018 08:34:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.60.76 with HTTP; Tue, 13 Mar 2018 08:34:10 -0700 (PDT) In-Reply-To: <20180312004638.GA56747@breton.holly.idiocy.org> References: <83a7vjre52.fsf@gnu.org> <20180307202603.GA31176@breton.holly.idiocy.org> <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> From: Aaron Jensen Date: Tue, 13 Mar 2018 08:34:10 -0700 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Alan Third Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: Eli Zaretskii , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) mOn Sun, Mar 11, 2018 at 5:46 PM, Alan Third wrote: >> The question is: can x_set_window_size be called without a redisplay >> happening soon enough, e.g. if Emacs is busy doing some lengthy >> calculation? > > OK, so this plan is a non=E2=80=90starter. Were you able to find a place where x_set_window_size can be called w/o a redisplay happening soon enough? I haven't seen any glitches using this patch yet, fwiw. From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 13 12:56:58 2018 Received: (at 30699) by debbugs.gnu.org; 13 Mar 2018 16:56:58 +0000 Received: from localhost ([127.0.0.1]:59763 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evnEQ-00079o-6k for submit@debbugs.gnu.org; Tue, 13 Mar 2018 12:56:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:51954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evnEM-00079Z-Uo for 30699@debbugs.gnu.org; Tue, 13 Mar 2018 12:56:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evnEH-0004yo-4j for 30699@debbugs.gnu.org; Tue, 13 Mar 2018 12:56:49 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39502) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evnEC-0004wT-I2; Tue, 13 Mar 2018 12:56:44 -0400 Received: from [176.228.60.248] (port=4397 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1evnEC-0005Ov-0F; Tue, 13 Mar 2018 12:56:44 -0400 Date: Tue, 13 Mar 2018 18:56:53 +0200 Message-Id: <83woyfrk16.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180313121904.GA79707@breton.holly.idiocy.org> (message from Alan Third on Tue, 13 Mar 2018 12:19:04 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <83k1uhs0ww.fsf@gnu.org> <20180312234239.GA77657@breton.holly.idiocy.org> <20180313121904.GA79707@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Tue, 13 Mar 2018 12:19:04 +0000 > From: Alan Third > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > I think the only solution left is to take a copy of the contents of > the frame, resize, then copy the contents back. I don’t know how to do > that and a quick google search reveals nothing helpful. What about the idea I brought up earlier: to avoid blanking the frame in this case (but still mark it garbaged)? From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 13 16:18:57 2018 Received: (at 30699) by debbugs.gnu.org; 13 Mar 2018 20:18:57 +0000 Received: from localhost ([127.0.0.1]:59918 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evqNs-00043w-BQ for submit@debbugs.gnu.org; Tue, 13 Mar 2018 16:18:57 -0400 Received: from mail-it0-f42.google.com ([209.85.214.42]:39209) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evqNq-00043f-9N for 30699@debbugs.gnu.org; Tue, 13 Mar 2018 16:18:54 -0400 Received: by mail-it0-f42.google.com with SMTP id l187-v6so1799941ith.4 for <30699@debbugs.gnu.org>; Tue, 13 Mar 2018 13:18:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ZQsbVZjuvRD8fFqeuEJsnAGJuR7WMU/3QBIPM3L2JLY=; b=IztjlZ37lWPw8StoIqugCOXqtTVTaLR4XEE+dZVTFiHyPDbJKbE4EvQInNa77OlZDV i40XOWb6E+A6WO6iMUPpBVFE+HtF7iAFfHcV/BV7cYnTgQKLBsLedDemB+jU0RGix8Oz erMoGsnyQuEUBK2+l7ZA6LjFdRlgdGFIVcN1yeRrMv65GsmxFvouoWnlQMY272OjeRuX 3YqFbZFuNPHNWx2zK9j4e5ilTKgM+g5HxlV5gY1lSvmUDKN4ixPeLrKd0A6qlLL2Ruyx 1en5WYnlqBTDypiPF3hMHrrgqaiIUnFgms+zZyhEuMCwdAfIM8jV8si08Kmj9e0o+HEL iTNQ== X-Gm-Message-State: AElRT7EFclHoPdquIPIeasgLlxPgUvsMvjbLtdNRnMcrFO8YBYF1WIiC DJCwev7MsdrOv2qSzkCntzwVjGItu4x0maFqXLA= X-Google-Smtp-Source: AG47ELvplPU27E3RPYqmbtB91RlV49jU/3JrjzHyh4857sJU/zoHx0eDbr2id/L6CiM9cxZEV15hQ2ULFoLs3b6/naA= X-Received: by 10.36.227.203 with SMTP id d194mr2448979ith.126.1520972328670; Tue, 13 Mar 2018 13:18:48 -0700 (PDT) MIME-Version: 1.0 References: <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <83k1uhs0ww.fsf@gnu.org> <20180312234239.GA77657@breton.holly.idiocy.org> <20180313121904.GA79707@breton.holly.idiocy.org> <83woyfrk16.fsf@gnu.org> In-Reply-To: <83woyfrk16.fsf@gnu.org> From: Alan Third Date: Tue, 13 Mar 2018 20:18:37 +0000 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Eli Zaretskii Content-Type: multipart/alternative; boundary="94eb2c111b905d1a34056750f736" X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, Aaron Jensen X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) --94eb2c111b905d1a34056750f736 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 13 Mar 2018, 16:57 Eli Zaretskii, wrote: > > Date: Tue, 13 Mar 2018 12:19:04 +0000 > > From: Alan Third > > Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com > > > > I think the only solution left is to take a copy of the contents of > > the frame, resize, then copy the contents back. I don=E2=80=99t know ho= w to do > > that and a quick google search reveals nothing helpful. > > What about the idea I brought up earlier: to avoid blanking the frame > in this case (but still mark it garbaged)? > I don't see any way to avoid blanking it. Cocoa does it when the frame resizes and doesnt provide any option not to. > --94eb2c111b905d1a34056750f736 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


= On Tue, 13 Mar 2018, 16:57 Eli Zaretskii, <eliz@gnu.org> wrote:
>= Date: Tue, 13 Mar 2018 12:19:04 +0000
> From: Alan Third <alan@idiocy.org>
> Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com
>
> I think the only solution left is to take a copy of the contents of > the frame, resize, then copy the contents back. I don=E2=80=99t know h= ow to do
> that and a quick google search reveals nothing helpful.

What about the idea I brought up earlier: to avoid blanking the frame
in this case (but still mark it garbaged)?

I don't see any way to avoid = blanking it. Cocoa does it when the frame resizes and doesnt provide any op= tion not to.
--94eb2c111b905d1a34056750f736-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 14 11:09:12 2018 Received: (at 30699) by debbugs.gnu.org; 14 Mar 2018 15:09:12 +0000 Received: from localhost ([127.0.0.1]:33425 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ew81f-0006Ep-N7 for submit@debbugs.gnu.org; Wed, 14 Mar 2018 11:09:11 -0400 Received: from mail-wr0-f172.google.com ([209.85.128.172]:39981) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ew81d-0006Ea-Kq for 30699@debbugs.gnu.org; Wed, 14 Mar 2018 11:09:10 -0400 Received: by mail-wr0-f172.google.com with SMTP id s12so2589567wre.7 for <30699@debbugs.gnu.org>; Wed, 14 Mar 2018 08:09:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=pZ/Mqo5VAv09ecHjaDK5s0Q4bTtLdLrSibU0AYos+iM=; b=i+9fyf4bI6j4mhY6ue9Y2dashdHzFThzrg2kdpB6hwijZJkS8GZ03qaFrw9+G3IPes bXxYYgafA/B+wxrjaxhjjNC9p8COVWzmUbEKUTE93uaOwjo2I4ELIq8ozddssmxp0K5y 4kVBRg3CUN/vq82H9qTIU24ctL72YxlR/NGgMxO1iAOkkcnuxwiVUvgVFSAEHIN4/HZm 59HZfbjhmdKofteXW+xCniPrQIkBCi6bDAMVRPqRN6MjxwJ8xl95pvlO+KC8yPvNUvB2 h50xn+MEOei7AVuugP/i6aGtgV68wbpcSlmdRNVNk73ES/ilTzI+4Vy0IDbo3dUv1P58 73yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=pZ/Mqo5VAv09ecHjaDK5s0Q4bTtLdLrSibU0AYos+iM=; b=WvXN9I6AbZv1PmEjmDbXQucFg84Q1kk/WwjobfrFg/Ea0hfwOnKCZzA438I+UzADxf 7+JZvVRlGdRwinsL4+qZqTb7yBVWIRo9N607Z/ZALpY3b8wydYv8O4o3o29ePNzZI2tW +U8tCN5gV+EKqNtA2P76vEbsX+P71/V7mGQ39LjgVJW49cZXuQ0ykxaV2D+SrsuHnHFK OP0y+5GeYLT6/a1u6UFJY8M+EeiQ0aYq7mfEOIWH55AXgLB7D3P2D1+jvE8cpur2PAwo j3jQ7sohJsxBTShaOREnhzQhdXXMusfE53QlMJDkifKOsVIj9oYlGdx19BmY+25T1Lvz 37Uw== X-Gm-Message-State: AElRT7H74KnthRq+SpjfZIpdiSrPBNpNP/2u3fAWYdETc0E8C0yLp5Kt 47EIhK2OhfeOmbm/CVBuots= X-Google-Smtp-Source: AG47ELux5fpDdtVJl+5y088rjYyJQlttunMhKCr7dM/x7vgsnYpX0U5hK2WNo6wnonEbmOakOO+jxg== X-Received: by 10.223.142.13 with SMTP id n13mr3896828wrb.133.1521040143826; Wed, 14 Mar 2018 08:09:03 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-4886-c488-de06-da47.holly.idiocy.org. [2001:8b0:3f8:8129:4886:c488:de06:da47]) by smtp.gmail.com with ESMTPSA id e10sm2977168wrh.38.2018.03.14.08.09.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 08:09:00 -0700 (PDT) Date: Wed, 14 Mar 2018 15:08:58 +0000 From: Alan Third To: Aaron Jensen Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180314150858.GA82855@breton.holly.idiocy.org> References: <83r2ounzty.fsf@gnu.org> <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: Eli Zaretskii , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Tue, Mar 13, 2018 at 08:34:10AM -0700, Aaron Jensen wrote: > mOn Sun, Mar 11, 2018 at 5:46 PM, Alan Third wrote: > >> The question is: can x_set_window_size be called without a redisplay > >> happening soon enough, e.g. if Emacs is busy doing some lengthy > >> calculation? > > > > OK, so this plan is a non‐starter. > > Were you able to find a place where x_set_window_size can be called > w/o a redisplay happening soon enough? > > I haven't seen any glitches using this patch yet, fwiw. I haven’t come across anything yet, but I’ve not been using this patch much. Watch out for macOS re‐enabling screen updates after ~1 second. It does this automatically; I guess to stop buggy code from freezing the application completely. It should log a message to stderr when it does. If we are going to use this code, as Eli pointed out, I’ll have to catch every place where redisplay returns, so it’s not ready for prime‐time yet. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 19 11:16:05 2018 Received: (at 30699) by debbugs.gnu.org; 19 Mar 2018 15:16:05 +0000 Received: from localhost ([127.0.0.1]:42035 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exwW5-0003WE-0a for submit@debbugs.gnu.org; Mon, 19 Mar 2018 11:16:05 -0400 Received: from mail-wr0-f182.google.com ([209.85.128.182]:46238) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exwW2-0003VU-NB for 30699@debbugs.gnu.org; Mon, 19 Mar 2018 11:16:03 -0400 Received: by mail-wr0-f182.google.com with SMTP id s10so6152901wra.13 for <30699@debbugs.gnu.org>; Mon, 19 Mar 2018 08:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=V4EYCOLr8BRzJUOWERLCUjFIveW2+Ds56B9qsYnlEco=; b=H+zx9ghJUJCYu1ZqyUWN2ssb0oUSuW4mO9A/dZvCxTeLyvAZmwjt6lfwiYTxT7vggr nfszazN/Kq6+bxmVp7fPDHv/EoXaWfS8Pc5hn+Slk8shuuDmxrSzc9yxEWBtS/wL3npx O9fOq7w2RhB+ouDOCHqbYVBU9+Px7OWy/wwpGUdfZHrwUvsMCr/23cMqySTghZH6rble wkUd0lw8um8d+ZpcSIdyga3zHfMIYnyZiRJV84bQ1jiBhWX1x7BUOQkakF5PKD3urwct 8Do99YZPjYN564/v8Rfbi5XqdrCoZ1vNd+/3Qcw32aYvU+0URMJ6C3qSSgvaPPV645zg 7Z3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=V4EYCOLr8BRzJUOWERLCUjFIveW2+Ds56B9qsYnlEco=; b=pKHfG6DsOiLYDsZ2K5z0D0LeHWAZdCE98FoyNQI9hyZLrvEpjBs9H/XgJD3xWytxWj dU1xZniJPL6Pb1IgpVsudTFZFQEC4rrK9qaefGwQVLMZq7nS8LZLgjOq3CXnvqyOnX02 7JKKAkoIm2DWCmfHhX1yXwB1w34YG2vocGPcp9uzcNcr43X9Ii+Vva37GCccxMg00uBU nlz0U4KufFpQd5sEcWE6fv2XNfFRjCuG54rq4AuHA5IPFLXr8jr/rFrpf5fjpGa4tVjz ssVxuSpmSOCMRcx557cfAM0qSrZXkCP7eGPXwdM03zUJs5wSSf9CXv/8hY8cublfuM3q iTDw== X-Gm-Message-State: AElRT7EeRsyqubbfF2N4tMawc3Jedj3QkIFr/HyA5sNZVf/iEFq8tJky PPE8+VBQ4hM84TybNtVngb8= X-Google-Smtp-Source: AG47ELsaH8wMW1Iw1PQGx2CJnTuEpfqs8o0RhihtPXB4l92D3Or0U8sedOUsiGbg5aJu6kK2m55DXA== X-Received: by 10.223.208.202 with SMTP id z10mr7505761wrh.15.1521472557014; Mon, 19 Mar 2018 08:15:57 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-c04a-d02f-79d4-a9c8.holly.idiocy.org. [2001:8b0:3f8:8129:c04a:d02f:79d4:a9c8]) by smtp.gmail.com with ESMTPSA id y111sm367634wrc.0.2018.03.19.08.15.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Mar 2018 08:15:54 -0700 (PDT) Date: Mon, 19 Mar 2018 15:15:52 +0000 From: Alan Third To: Aaron Jensen Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180319151552.GA32506@breton.holly.idiocy.org> References: <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <20180314150858.GA82855@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="tKW2IUtsqtDRztdT" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180314150858.GA82855@breton.holly.idiocy.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: Eli Zaretskii , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Wed, Mar 14, 2018 at 03:08:58PM +0000, Alan Third wrote: > On Tue, Mar 13, 2018 at 08:34:10AM -0700, Aaron Jensen wrote: > > > > I haven't seen any glitches using this patch yet, fwiw. > > I haven’t come across anything yet, but I’ve not been using this patch > much. > > Watch out for macOS re‐enabling screen updates after ~1 second. It > does this automatically; I guess to stop buggy code from freezing the > application completely. It turns out that even with screen updates disabled some calls still force the screen to update. I’m not sure which ones, but it does mean we’re unlikely to completely lock up Emacs with this. I’ve attached a new version of the patch. Eli, I left the global variable as static since as far as I can tell static global variables are still global to all threads, which is the behaviour I believe we want. These functions should only be called from the main thread anyway, Cocoa will kill the thread if GUI calls are made from non‐main threads. If it definitely shouldn’t be static, what should I do with it? I moved the call to ns_enable_screen_updates in unwind_redisplay as that’s where the double buffering code appears to unblock updates. -- Alan Third --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="v2-0001-Fix-frame-resize-flicker-on-macOS-bug-30699.patch" >From 823298202face05009808d2f00e2faa711c3882f Mon Sep 17 00:00:00 2001 From: Alan Third Date: Sat, 10 Mar 2018 00:09:09 +0000 Subject: [PATCH v2] Fix frame resize flicker on macOS (bug#30699) * src/nsterm.h (ns_enable_screen_updates): New function. * src/nsterm.m (ns_enable_screen_updates): (ns_disable_screen_updates): New functions. (disable_screen_updates_count): Count of number of times we've called NSDisableScreenUpdates. (x_set_window_size): Disable screen updates when not in a live resize loop. * src/xdisp.c (redisplay_internal): Reenable screen updates when redisplay doesn't complete due to a popup. (unwind_redisplay): Reenable screen updates. --- src/nsterm.h | 3 +++ src/nsterm.m | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/xdisp.c | 16 +++++++++++++++- 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/nsterm.h b/src/nsterm.h index 8b985930ec..df59a7dbd9 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -1160,6 +1160,9 @@ extern void ns_release_autorelease_pool (void *); extern const char *ns_get_defaults_value (const char *key); extern void ns_init_locale (void); +#ifdef NS_IMPL_COCOA +extern void ns_enable_screen_updates (void); +#endif /* in nsmenu */ extern void update_frame_tool_bar (struct frame *f); diff --git a/src/nsterm.m b/src/nsterm.m index 75e0b837c6..45367dd36f 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -288,6 +288,9 @@ - (NSColor *)colorUsingDefaultColorSpace static BOOL ns_fake_keydown = NO; #ifdef NS_IMPL_COCOA static BOOL ns_menu_bar_is_hidden = NO; + +/* The number of times NSDisableScreenUpdates has been called. */ +static int disable_screen_updates_count = 0; #endif /*static int debug_lock = 0; */ @@ -727,6 +730,40 @@ Free a pool and temporary objects it refers to (callable from C) } +#ifdef NS_IMPL_COCOA +/* Disabling screen updates can be used to make several actions appear + "atomic" to the end user. It seems some actions can still update + the display, though. + + When we re-enable screen updates the number of calls to + NSEnableScreenUpdates should match the number to + NSDisableScreenUpdates. + + We use this to prevent the user seeing a blank frame after it has + been resized. x_set_window_size disables updates and when + redisplay compeltes unwind_redisplay enables them again + (bug#30699). */ + +static void +ns_disable_screen_updates (void) +{ + NSDisableScreenUpdates (); + disable_screen_updates_count++; +} + +void +ns_enable_screen_updates (void) +/* Re-enable screen updates. Called from unwind_redisplay. */ +{ + while (disable_screen_updates_count > 0) + { + NSEnableScreenUpdates (); + disable_screen_updates_count--; + } +} +#endif + + static BOOL ns_menu_bar_should_be_hidden (void) /* True, if the menu bar should be hidden. */ @@ -1877,6 +1914,15 @@ -(void)remove block_input (); +#ifdef NS_IMPL_COCOA + /* To prevent showing the user a blank frame, stop updates being + flushed to the screen until after redisplay has completed. This + breaks live resize (resizing with a mouse), so don't do it if + we're in a live resize loop. */ + if (![view inLiveResize]) + ns_disable_screen_updates (); +#endif + if (pixelwise) { pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); diff --git a/src/xdisp.c b/src/xdisp.c index a97d4db607..4778f532cd 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13918,7 +13918,15 @@ redisplay_internal (void) #if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS) if (popup_activated ()) - return; + { +#ifdef NS_IMPL_COCOA + /* On macOS we may have disabled screen updates due to window + resizing. We should re-enable them so the popup can be + displayed. */ + ns_enable_screen_updates (); +#endif + return; + } #endif /* I don't think this happens but let's be paranoid. */ @@ -14722,6 +14730,12 @@ unwind_redisplay (void) { redisplaying_p = false; unblock_buffer_flips (); +#ifdef NS_IMPL_COCOA + /* On macOS we may have disabled screen updates due to window + resizing. When redisplay completes we want to re-enable + them. */ + ns_enable_screen_updates (); +#endif } -- 2.16.1 --tKW2IUtsqtDRztdT-- From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 19 11:27:44 2018 Received: (at 30699) by debbugs.gnu.org; 19 Mar 2018 15:27:44 +0000 Received: from localhost ([127.0.0.1]:42045 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exwhL-0003nD-Sb for submit@debbugs.gnu.org; Mon, 19 Mar 2018 11:27:44 -0400 Received: from eggs.gnu.org ([208.118.235.92]:40250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exwhJ-0003n0-Kv for 30699@debbugs.gnu.org; Mon, 19 Mar 2018 11:27:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1exwhB-0005D6-DC for 30699@debbugs.gnu.org; Mon, 19 Mar 2018 11:27:36 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58153) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1exwhB-0005D0-8u; Mon, 19 Mar 2018 11:27:33 -0400 Received: from [176.228.60.248] (port=2910 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1exwhA-0005mq-Mu; Mon, 19 Mar 2018 11:27:33 -0400 Date: Mon, 19 Mar 2018 17:27:42 +0200 Message-Id: <838taonl01.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20180319151552.GA32506@breton.holly.idiocy.org> (message from Alan Third on Mon, 19 Mar 2018 15:15:52 +0000) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180309120952.GA45581@breton.holly.idiocy.org> <837eqlwf1i.fsf@gnu.org> <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <20180314150858.GA82855@breton.holly.idiocy.org> <20180319151552.GA32506@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Mon, 19 Mar 2018 15:15:52 +0000 > From: Alan Third > Cc: Eli Zaretskii , 30699@debbugs.gnu.org > > I’ve attached a new version of the patch. > > Eli, I left the global variable as static since as far as I can tell > static global variables are still global to all threads, which is the > behaviour I believe we want. These functions should only be called > from the main thread anyway, Cocoa will kill the thread if GUI calls > are made from non‐main threads. > > If it definitely shouldn’t be static, what should I do with it? > > I moved the call to ns_enable_screen_updates in unwind_redisplay as > that’s where the double buffering code appears to unblock updates. It's fine with me to install this on master, and see if there are any adverse effects. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 19 13:19:52 2018 Received: (at 30699) by debbugs.gnu.org; 19 Mar 2018 17:19:53 +0000 Received: from localhost ([127.0.0.1]:42095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exyRs-0006Sd-Iy for submit@debbugs.gnu.org; Mon, 19 Mar 2018 13:19:52 -0400 Received: from mail-wm0-f49.google.com ([74.125.82.49]:39513) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exyRr-0006SR-9A for 30699@debbugs.gnu.org; Mon, 19 Mar 2018 13:19:51 -0400 Received: by mail-wm0-f49.google.com with SMTP id f125so8836027wme.4 for <30699@debbugs.gnu.org>; Mon, 19 Mar 2018 10:19:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=iPVk+53mDbQnMpJQ64LEsakxe0u0Z4tf8D9KGOIg1ng=; b=LbizqfQH45iX73bwaVTVzZndxAzj5Vy7CUMCpvrlB/fGG5meWbSwrbvbTZc70YLFMh wLNR8QSMRbXpW+SaVg7AyzD08GOkqXgke2Uokq/2Tq+Y0fVUop5YuJ5OjPcFtKLPj5A4 cByll5ctyq4GHduLmCpCpYa5Mn4bFulCtjOMjyX+/TvxO5TcOJPG9qmbDDCf5QpO0M2l jcI7ENULkhOgPNzt5aFUgPCkwaq5XlyDI+EmDZK7qG4Gis6TuA5jzD9pwx6iGiw3LtbK /1KMsa60Yfqtsk6j8txpQRE1GeHnSaoUM//eDH52uAAHT4Nd6CoFpSfisT2L/8FqxUOg NycA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=iPVk+53mDbQnMpJQ64LEsakxe0u0Z4tf8D9KGOIg1ng=; b=gqBsOvKjelFEAdTtFF3Ja7R7r4DMIrw8KKJUWGzJbz2BCXlvEYtxmI1IoWvCP3LNai sd87Bs5g0PfD7Z9bwYuArjCm16mqDKkRzdWbcFGPO1jXckwtaHoQB1fESZpavjto3mmk EP6z66JoBJXbGlUu+7FiGynUIuARspD3RZnaecP6m++9Dp0uSvhLdb1WoZs/N/a764rP 3RMDWn5HT+14wE6+5rk8i5Ws6zLQkTR+bQhK3oYOYktJIzGfkoaE/kYyth5TUiJQbZ9i HWg1Di1QNmtgFqdiCrgszMrZzEvvTXWUCfQk7fXFPM+n1mG0uByvFGAhEoalgrq6WtRt 0XJw== X-Gm-Message-State: AElRT7HOokXd91EyWHsxAX8HRZ0/jtrv13b5tPOMTShZochoYngQnquG swIXuL1Zg40Ge25AhFfFn5g= X-Google-Smtp-Source: AG47ELs4y7M/PyzF0PjpqECToHOhsK/T5SroU+0reR5zI4rWbRCIKZCi+Tghk5CzX4f738x5RMG/4A== X-Received: by 10.28.167.204 with SMTP id q195mr3689456wme.48.1521479985373; Mon, 19 Mar 2018 10:19:45 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-c04a-d02f-79d4-a9c8.holly.idiocy.org. [2001:8b0:3f8:8129:c04a:d02f:79d4:a9c8]) by smtp.gmail.com with ESMTPSA id t79sm1004960wmt.46.2018.03.19.10.19.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Mar 2018 10:19:44 -0700 (PDT) Date: Mon, 19 Mar 2018 17:19:42 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized Message-ID: <20180319171942.GA32786@breton.holly.idiocy.org> References: <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <20180314150858.GA82855@breton.holly.idiocy.org> <20180319151552.GA32506@breton.holly.idiocy.org> <838taonl01.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <838taonl01.fsf@gnu.org> User-Agent: Mutt/1.9.3 (2018-01-21) X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 30699 Cc: 30699@debbugs.gnu.org, aaronjensen@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Mon, Mar 19, 2018 at 05:27:42PM +0200, Eli Zaretskii wrote: > > Date: Mon, 19 Mar 2018 15:15:52 +0000 > > From: Alan Third > > Cc: Eli Zaretskii , 30699@debbugs.gnu.org > > > > I’ve attached a new version of the patch. > > > > It's fine with me to install this on master, and see if there are any > adverse effects. Pushed to master. Thanks. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 20 17:50:22 2018 Received: (at 30699) by debbugs.gnu.org; 20 Mar 2018 21:50:23 +0000 Received: from localhost ([127.0.0.1]:44338 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyP9C-0007Ry-GK for submit@debbugs.gnu.org; Tue, 20 Mar 2018 17:50:22 -0400 Received: from mail-qk0-f178.google.com ([209.85.220.178]:37583) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyP9A-0007Rb-TD for 30699@debbugs.gnu.org; Tue, 20 Mar 2018 17:50:21 -0400 Received: by mail-qk0-f178.google.com with SMTP id w6so3424995qkb.4 for <30699@debbugs.gnu.org>; Tue, 20 Mar 2018 14:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ymy1ZXosNr6S+BLCWO8jnELACEeu3KVMl+/WSSjEH1A=; b=jKUU3h33LOBP441QzqafVtG9kwRKZufrT1lujYgYJwEYQAF/5oi9K5rgQynjwQDXLz 4gLUNhX0o+u80xjxScTx1gLjwZESjS4wAvthtvkgnXGWkXXXpjxea17q4W+xU7eaHTVQ Ql4ExNTn/BTmH/bYFN/ytpuRyIz+q5V9omyBwh/51l0/9KdlQ3pJF15UXwJzJ3c4sIHJ 1g1Pu+iIztup0nEvjmqf3Ao1pndSNb3uN++SBGx8dkPC/zrOgj+1Pni3D4I3mIBte0NN u8EmAYoHNDltyLJqzh8ss4KUv80JfrFNPdoxHfSrTZI7IkEOPZ5jvAv6Sz3STohe61PN 0r9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ymy1ZXosNr6S+BLCWO8jnELACEeu3KVMl+/WSSjEH1A=; b=kdE32wcGAQHJRA4Od/j1cM9Kuxkbc3J2IOOSboK1waO6uwYomHVkSrhjHPlYgeV5ol 8lwvDLdyG9MnP3lb9dLVoXgsU4pig58x5Kl9sVIGo5gB3sI0YwyQLdkQ1kTwaVm99GyI kzFElWou+uwGiCu5g9kAf/42a+el+RLJGmEFCJlnyAJk0xwgG6gvFhSuY7pUpJYOCVqG U9pxJrrGTvE2jwNX3denEEMZBbqzhrlB0f6k+yxdkgTJXH5ytOVzsQDB8P6JRpwpUP6V 50X5jgHWutAOPV1p3ETavfDOYZjybk7+Ok0bqL94Nk95XIrMK/sMAv/3Fo4Wc2sucORX kCCA== X-Gm-Message-State: AElRT7GvTdXMPLn////X9VJxS0Bfj9aZ3u+pvGmTpihQ2JlHu8FCDYXE jOrR7cga8tm/3lcbPhNAkYNqEkJTD3E7PQJo2Qt6DJZR X-Google-Smtp-Source: AG47ELvhclOTqwbNRTnWVtiSoA5QR7FddPzAWEni6SFgXD7NG5A0/Jm1T37aE68Zt7+X+YKS/MI7Et0s5h1UWsYFdxM= X-Received: by 10.55.73.80 with SMTP id w77mr5316233qka.30.1521582615017; Tue, 20 Mar 2018 14:50:15 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.60.76 with HTTP; Tue, 20 Mar 2018 14:50:14 -0700 (PDT) In-Reply-To: <20180319171942.GA32786@breton.holly.idiocy.org> References: <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <20180314150858.GA82855@breton.holly.idiocy.org> <20180319151552.GA32506@breton.holly.idiocy.org> <838taonl01.fsf@gnu.org> <20180319171942.GA32786@breton.holly.idiocy.org> From: Aaron Jensen Date: Tue, 20 Mar 2018 14:50:14 -0700 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Alan Third Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: Eli Zaretskii , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) I've been having crashes on master today. Here's the dump (I didn't have lldb attached at the time). Thread 5 is what pointed me to this: 3 com.apple.SkyLight 0x00007fff594c6b44 CGSUpdateManager::enable_update(unsigned long long) + 320 dump: Process: Emacs [24810] Path: /usr/local/Cellar/emacs-plus/HEAD-b39ca55/Emacs.app/Contents/MacOS/Emacs Identifier: org.gnu.Emacs Version: Version 27.0.50 (9.0) Code Type: X86-64 (Native) Parent Process: ??? [1] Responsible: Emacs [24810] User ID: 501 Date/Time: 2018-03-20 14:46:41.959 -0700 OS Version: Mac OS X 10.13.3 (17D102) Report Version: 12 Bridge OS Version: 3.0 (14Y661) Anonymous UUID: 09E26AFE-B1D5-81E4-DFC1-FBBA35A17B93 Sleep/Wake UUID: FB6822D9-AAE9-44F2-93DF-F9B725B456CF Time Awake Since Boot: 250000 seconds Time Since Wake: 2400 seconds System Integrity Protection: enabled Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGABRT) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY VM Regions Near 0: --> __TEXT 0000000100000000-00000001001e0000 [ 1920K] r-x/rwx SM=COW ` [/usr/local/Cellar/emacs-plus/HEAD-b39ca55/Emacs.app/Contents/MacOS/Emacs] Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x00007fff5f64fe3e __pthread_kill + 10 1 libsystem_pthread.dylib 0x00007fff5f78e150 pthread_kill + 333 2 libsystem_c.dylib 0x00007fff5f55e8fe raise + 26 3 org.gnu.Emacs 0x00000001000a18da terminate_due_to_signal + 155 4 org.gnu.Emacs 0x00000001000b8fb6 emacs_abort + 19 5 org.gnu.Emacs 0x00000001001793fe ns_term_shutdown + 122 6 org.gnu.Emacs 0x00000001000a1ab4 shut_down_emacs + 262 7 org.gnu.Emacs 0x00000001000a18a5 terminate_due_to_signal + 102 8 org.gnu.Emacs 0x00000001000bb3a6 handle_fatal_signal + 14 9 org.gnu.Emacs 0x00000001000ba2dc deliver_fatal_thread_signal + 114 10 org.gnu.Emacs 0x00000001000bb44e handle_sigsegv + 168 11 libsystem_platform.dylib 0x00007fff5f781f5a _sigtramp + 26 12 ??? 000000000000000000 0 + 0 13 com.apple.AppKit 0x00007fff351c0d9d -[NSApplication run] + 812 14 org.gnu.Emacs 0x00000001001795b2 -[EmacsApp run] + 373 15 org.gnu.Emacs 0x000000010018434f ns_read_socket + 536 16 org.gnu.Emacs 0x00000001000ac523 gobble_input + 234 17 org.gnu.Emacs 0x00000001000ab3bb get_input_pending + 94 18 org.gnu.Emacs 0x00000001000a7769 read_char + 443 19 org.gnu.Emacs 0x00000001000a5ddf read_key_sequence + 1326 20 org.gnu.Emacs 0x00000001000a49c2 command_loop_1 + 783 21 org.gnu.Emacs 0x000000010010cf9b internal_condition_case + 82 22 org.gnu.Emacs 0x00000001000b0dc7 command_loop_2 + 37 23 org.gnu.Emacs 0x000000010010cb0b internal_catch + 73 24 org.gnu.Emacs 0x00000001000a3fc0 command_loop + 156 25 org.gnu.Emacs 0x00000001000a3ede recursive_edit_1 + 112 26 org.gnu.Emacs 0x00000001000a4100 Frecursive_edit + 228 27 org.gnu.Emacs 0x00000001000a2f63 main + 5206 28 libdyld.dylib 0x00007fff5f500115 start + 1 Thread 1:: gmain 0 libsystem_kernel.dylib 0x00007fff5f64ffca __select + 10 1 libglib-2.0.0.dylib 0x00000001009eeb60 g_poll + 430 2 libglib-2.0.0.dylib 0x00000001009e282f g_main_context_iterate + 340 3 libglib-2.0.0.dylib 0x00000001009e28dd g_main_context_iteration + 55 4 libglib-2.0.0.dylib 0x00000001009e398b glib_worker_main + 30 5 libglib-2.0.0.dylib 0x0000000100a03941 g_thread_proxy + 90 6 libsystem_pthread.dylib 0x00007fff5f78b6c1 _pthread_body + 340 7 libsystem_pthread.dylib 0x00007fff5f78b56d _pthread_start + 377 8 libsystem_pthread.dylib 0x00007fff5f78ac5d thread_start + 13 Thread 2: 0 libsystem_kernel.dylib 0x00007fff5f64ffca __select + 10 1 org.gnu.Emacs 0x000000010017a51a -[EmacsApp fd_handler:] + 219 2 com.apple.Foundation 0x00007fff39cc8ee8 __NSThread__start__ + 1197 3 libsystem_pthread.dylib 0x00007fff5f78b6c1 _pthread_body + 340 4 libsystem_pthread.dylib 0x00007fff5f78b56d _pthread_start + 377 5 libsystem_pthread.dylib 0x00007fff5f78ac5d thread_start + 13 Thread 3:: com.apple.NSEventThread 0 libsystem_kernel.dylib 0x00007fff5f6467c2 mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fff5f645cdc mach_msg + 60 2 com.apple.CoreFoundation 0x00007fff37bea575 __CFRunLoopServiceMachPort + 341 3 com.apple.CoreFoundation 0x00007fff37be98c7 __CFRunLoopRun + 1783 4 com.apple.CoreFoundation 0x00007fff37be8f43 CFRunLoopRunSpecific + 483 5 com.apple.AppKit 0x00007fff353093c8 _NSEventThread + 184 6 libsystem_pthread.dylib 0x00007fff5f78b6c1 _pthread_body + 340 7 libsystem_pthread.dylib 0x00007fff5f78b56d _pthread_start + 377 8 libsystem_pthread.dylib 0x00007fff5f78ac5d thread_start + 13 Thread 4: 0 libsystem_pthread.dylib 0x00007fff5f78ac40 start_wqthread + 0 1 ??? 0x0000700005ec7b30 0 + 123145401695024 Thread 5:: Dispatch queue: NSCGSDisableUpdates 0 libsystem_kernel.dylib 0x00007fff5f6467c2 mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fff5f645cdc mach_msg + 60 2 com.apple.SkyLight 0x00007fff59522285 CGSUpdateManager::enable_updates_common() + 565 3 com.apple.SkyLight 0x00007fff594c6b44 CGSUpdateManager::enable_update(unsigned long long) + 320 4 libdispatch.dylib 0x00007fff5f4ce591 _dispatch_call_block_and_release + 12 5 libdispatch.dylib 0x00007fff5f4c6d50 _dispatch_client_callout + 8 6 libdispatch.dylib 0x00007fff5f4db20c _dispatch_queue_serial_drain + 635 7 libdispatch.dylib 0x00007fff5f4ce0fd _dispatch_queue_invoke + 373 8 libdispatch.dylib 0x00007fff5f4dbf02 _dispatch_root_queue_drain_deferred_wlh + 332 9 libdispatch.dylib 0x00007fff5f4dfd16 _dispatch_workloop_worker_thread + 880 10 libsystem_pthread.dylib 0x00007fff5f78b033 _pthread_wqthread + 980 11 libsystem_pthread.dylib 0x00007fff5f78ac4d start_wqthread + 13 Thread 6: 0 libsystem_kernel.dylib 0x00007fff5f650562 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff5f78b26f _pthread_wqthread + 1552 2 libsystem_pthread.dylib 0x00007fff5f78ac4d start_wqthread + 13 Thread 7: 0 libsystem_kernel.dylib 0x00007fff5f650562 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff5f78b26f _pthread_wqthread + 1552 2 libsystem_pthread.dylib 0x00007fff5f78ac4d start_wqthread + 13 Thread 8: 0 libsystem_pthread.dylib 0x00007fff5f78ac40 start_wqthread + 0 1 ??? 0x0000000101642a00 0 + 4318308864 Thread 9: 0 libsystem_pthread.dylib 0x00007fff5f78ac40 start_wqthread + 0 1 ??? 0x0000000101643e00 0 + 4318313984 Thread 10: 0 libsystem_kernel.dylib 0x00007fff5f650562 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff5f78b26f _pthread_wqthread + 1552 2 libsystem_pthread.dylib 0x00007fff5f78ac4d start_wqthread + 13 Thread 11: 0 libsystem_pthread.dylib 0x00007fff5f78ac40 start_wqthread + 0 1 ??? 0x0000000101646600 0 + 4318324224 Thread 0 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x00007fff98556340 rcx: 0x00000001005c8198 rdx: 0x0000000000000000 rdi: 0x0000000000000307 rsi: 0x0000000000000006 rbp: 0x00000001005c81d0 rsp: 0x00000001005c8198 r8: 0x0000000000000015 r9: 0x00000001123ef410 r10: 0x0000000000000000 r11: 0x0000000000000287 r12: 0x0000000000000307 r13: 0x0000000101706150 r14: 0x0000000000000006 r15: 0x000000000000002d rip: 0x00007fff5f64fe3e rfl: 0x0000000000000286 cr2: 0x00007fe9a401a000 Logical CPU: 0 Error Code: 0x02000148 Trap Number: 133 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 20 19:22:47 2018 Received: (at 30699) by debbugs.gnu.org; 20 Mar 2018 23:22:47 +0000 Received: from localhost ([127.0.0.1]:44400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyQad-00053z-6K for submit@debbugs.gnu.org; Tue, 20 Mar 2018 19:22:47 -0400 Received: from mail-qk0-f181.google.com ([209.85.220.181]:37416) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyQab-00053l-SE for 30699@debbugs.gnu.org; Tue, 20 Mar 2018 19:22:46 -0400 Received: by mail-qk0-f181.google.com with SMTP id w6so3640761qkb.4 for <30699@debbugs.gnu.org>; Tue, 20 Mar 2018 16:22:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=5CVNMpndBfjKq7VUVMZiIVwOeADrRayKcnrSa7g5S9w=; b=ReGLWgygFQ8yTOU4hewF2PxzJVU0Fv56QMgveHojVzV1Grh2WoMxT3CadYLQZiVPFV sgT5YrodKVh8FgklO9yI/Wj51Gbo64uenjlIEm990PIVair8obo49Wz/Lu6/wsixn7SQ 7xmr8bvGLScoqyX0NeaMZI/kgWNJshCHcuBVosOo5xDqmjTwadATwTlfw1Ln+uF06c8s WXpi2bY5rgTJ278uvoplPZYGaOdEA4dlxkhycAXPXuyghxDr6tmz1Yo3G6ZKQHYObGIg dLKZDy9NHMCepTKUikTMtfRq2dvCuE/4RX/TJ6wt5w5GMti4uydUJRV6f+PJ5Snx8nUo ca0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=5CVNMpndBfjKq7VUVMZiIVwOeADrRayKcnrSa7g5S9w=; b=cu7Aaz8lQ6LFgPrfed0Txa5iW5D+61DJD7j0si8K/UXPDZ4lqCsr73/1JoHarmoO6w oC3WucxiGfB1EeLbKgItfucKYhkBFPuZBbTLrfEMcQWG4w7cyjScQc8YOMnEUU2+G1vy rfPTGMLuwBpXLNHmEmF4/sq3R5LinSTj5fnrIQyHaAXR/iFRH8EBnMSIrqtKCiHdSWSV 9chFThkH/bAmo4b5bQDH1KsSbk/BiyDQqGesuJzF+U+78dZY7gQvLa++iRq4GzI0J8tn TRflkLmCX1rcaAy1Gl90m7XjSt/2LWWlF4q5BIN3Qjz+yaSaAnqz4QJ6iYWBD/Z2iI03 EuVQ== X-Gm-Message-State: AElRT7GhgXQMwipUb1E9yYXHPKhkTMvIJ0AGcwyA3YKYB/sDMhx0eJBc lYrUWVKdRZ5GgWdPUF/We2kYKiKC29qmo9dlWSY= X-Google-Smtp-Source: AG47ELtYi5aKGruZ5Qcsiz3eqzUgI+R5PycuNpUKwJpeN5zwO9w8AUBCV5XMYo73LnW6oMMQ1+9bcNau15/yqGYGl20= X-Received: by 10.55.73.80 with SMTP id w77mr5683784qka.30.1521588160117; Tue, 20 Mar 2018 16:22:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.60.76 with HTTP; Tue, 20 Mar 2018 16:22:39 -0700 (PDT) In-Reply-To: References: <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <20180314150858.GA82855@breton.holly.idiocy.org> <20180319151552.GA32506@breton.holly.idiocy.org> <838taonl01.fsf@gnu.org> <20180319171942.GA32786@breton.holly.idiocy.org> From: Aaron Jensen Date: Tue, 20 Mar 2018 16:22:39 -0700 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Alan Third Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: Eli Zaretskii , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On Tue, Mar 20, 2018 at 2:50 PM, Aaron Jensen wrote: > I've been having crashes on master today. Here's the dump (I didn't > have lldb attached at the time). Thread 5 is what pointed me to this: > This crash is still happening w/o this or the previous versions of the patch installed on the emacs-26 branch. I'm going to try running w/ lldb attached and see if I can't get some more info. If I do I'll open a new bug. Emacs has crashed at least 4 times today, so it's a bad one for me. From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 21 02:31:59 2018 Received: (at 30699) by debbugs.gnu.org; 21 Mar 2018 06:31:59 +0000 Received: from localhost ([127.0.0.1]:44749 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyXHz-0002Ez-I5 for submit@debbugs.gnu.org; Wed, 21 Mar 2018 02:31:59 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34237) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyXHy-0002Em-EJ for 30699@debbugs.gnu.org; Wed, 21 Mar 2018 02:31:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyXHo-0004Dm-8X for 30699@debbugs.gnu.org; Wed, 21 Mar 2018 02:31:53 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43817) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyXHo-0004Di-4X; Wed, 21 Mar 2018 02:31:48 -0400 Received: from [176.228.60.248] (port=1606 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eyXHn-0001oA-Hq; Wed, 21 Mar 2018 02:31:47 -0400 Date: Wed, 21 Mar 2018 08:32:01 +0200 Message-Id: <83in9qkkgu.fsf@gnu.org> From: Eli Zaretskii To: Aaron Jensen In-reply-to: (message from Aaron Jensen on Tue, 20 Mar 2018 14:50:14 -0700) Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized References: <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <20180314150858.GA82855@breton.holly.idiocy.org> <20180319151552.GA32506@breton.holly.idiocy.org> <838taonl01.fsf@gnu.org> <20180319171942.GA32786@breton.holly.idiocy.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 30699 Cc: alan@idiocy.org, 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Aaron Jensen > Date: Tue, 20 Mar 2018 14:50:14 -0700 > Cc: Eli Zaretskii , 30699@debbugs.gnu.org > > I've been having crashes on master today. Here's the dump (I didn't > have lldb attached at the time). Thread 5 is what pointed me to this: > > 3 com.apple.SkyLight 0x00007fff594c6b44 > CGSUpdateManager::enable_update(unsigned long long) + 320 That's an internal NS function, isn't it? AFAIU, the important part is this: > 10 org.gnu.Emacs 0x00000001000bb44e handle_sigsegv + 168 > 11 libsystem_platform.dylib 0x00007fff5f781f5a _sigtramp + 26 > 12 ??? 000000000000000000 0 + 0 > 13 com.apple.AppKit 0x00007fff351c0d9d > -[NSApplication run] + 812 > 14 org.gnu.Emacs 0x00000001001795b2 -[EmacsApp run] + 373 > 15 org.gnu.Emacs 0x000000010018434f ns_read_socket + 536 > 16 org.gnu.Emacs 0x00000001000ac523 gobble_input + 234 Why does [EmacsApp run] trigger a SIGSEGV? From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 21 12:28:06 2018 Received: (at 30699) by debbugs.gnu.org; 21 Mar 2018 16:28:06 +0000 Received: from localhost ([127.0.0.1]:46107 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eygar-0001fk-Re for submit@debbugs.gnu.org; Wed, 21 Mar 2018 12:28:06 -0400 Received: from mail-qk0-f177.google.com ([209.85.220.177]:45991) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eygaq-0001fH-CA for 30699@debbugs.gnu.org; Wed, 21 Mar 2018 12:28:04 -0400 Received: by mail-qk0-f177.google.com with SMTP id s9so6044299qke.12 for <30699@debbugs.gnu.org>; Wed, 21 Mar 2018 09:28:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=gBvhhRA8n8sz5CHiy1ptVtpT8YfmU/L1fKmziPvq4C0=; b=oocNTfj2e8mtXwJvTSjISxCQ2ZOcy6XKD1dQeUFty+JYj8/XIwbzJa/miN3iz9qXxC kHhz4eF3wjQ7nxgqdeC3ENnrgNQHfo9twnA7Yzz0nT9kUl5FGUI3awGFaYTr0MVKGZMJ 5huIiwOFz1AQA0eDpzIIF5XHjVxx+N1eZahBCvGDDP404U238TFa6xWL/5i1sOIMweCx z0o8T6MBPbgFBykWmwfRSvWK5hiJT1ZXWV/Gf+WQWJP7AiGMyD53+aiBxDbwhe13Zw4B 2X2eBPz2WSfNJjOvh+bY+GEjvlxgdxajKss0fctL80mgwNTOjmo/oBm9OF8+9oQaOFWR XbOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=gBvhhRA8n8sz5CHiy1ptVtpT8YfmU/L1fKmziPvq4C0=; b=T3Yo06fSvppEeC6E07n4PN7O3r2SkoWAsTSz2FKx2awzp41va9Jq9sDFx6qv9L79Gw e/dtvtVrwF2eATiwoqDNfZC49ebsYV3SGISI8W9mCNWfJMpJBU/CKJecSxJZ989EJhSp 0PwKFRKWjUWUu9F54VKe0A/av1vsbbFfQARQ79uvKk4Rs2xiZEyRpQ7g1FM9cAJ2NzZN 7SgtaJWv5GrDKEFcBn2GWxjpnmVf2q4nlz7+Y2gg0sZuuSf67XGZc0bQhis/JUYpjBbR S5MIN9LHJxpSTDHP6d0nEbjCbtUA7Y+JBSoJw6ynABxYYJoFjXlPzvJdzRmU5F9Rs16B wbNQ== X-Gm-Message-State: AElRT7FcziSIIc/lgv9T1aqs+Rn8piP3A7/KTjE5B/+VU6p2S1Wi77sc P2JuoUtGgx2WoYPMvCq7co+DPOPrbJJJT13CgleG/A== X-Google-Smtp-Source: AG47ELtgLQvwocyEMB+nN1JzuPw4pc0amu1SOxz1XUkNCs9CRmaEFtiMO5i2sJqflOjFJIGTdWoAWAj+NNc4uezrKzA= X-Received: by 10.55.164.23 with SMTP id n23mr17738607qke.259.1521649678947; Wed, 21 Mar 2018 09:27:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.60.76 with HTTP; Wed, 21 Mar 2018 09:27:58 -0700 (PDT) In-Reply-To: <83in9qkkgu.fsf@gnu.org> References: <20180309232415.GB51893@breton.holly.idiocy.org> <20180310002555.GA54231@breton.holly.idiocy.org> <83h8pouycc.fsf@gnu.org> <20180310230706.GB55832@breton.holly.idiocy.org> <83a7vetw32.fsf@gnu.org> <20180312004638.GA56747@breton.holly.idiocy.org> <20180314150858.GA82855@breton.holly.idiocy.org> <20180319151552.GA32506@breton.holly.idiocy.org> <838taonl01.fsf@gnu.org> <20180319171942.GA32786@breton.holly.idiocy.org> <83in9qkkgu.fsf@gnu.org> From: Aaron Jensen Date: Wed, 21 Mar 2018 09:27:58 -0700 Message-ID: Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30699 Cc: Alan Third , 30699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On Tue, Mar 20, 2018 at 11:32 PM, Eli Zaretskii wrote: >> CGSUpdateManager::enable_update(unsigned long long) + 320 > > That's an internal NS function, isn't it? Yeah, it was probably a red herring. > AFAIU, the important part is this: > >> 10 org.gnu.Emacs 0x00000001000bb44e handle_sigsegv + 168 >> 11 libsystem_platform.dylib 0x00007fff5f781f5a _sigtramp + 26 >> 12 ??? 000000000000000000 0 + 0 >> 13 com.apple.AppKit 0x00007fff351c0d9d >> -[NSApplication run] + 812 >> 14 org.gnu.Emacs 0x00000001001795b2 -[EmacsApp run] + 373 >> 15 org.gnu.Emacs 0x000000010018434f ns_read_socket + 536 >> 16 org.gnu.Emacs 0x00000001000ac523 gobble_input + 234 > > Why does [EmacsApp run] trigger a SIGSEGV? For posterity, as i know you've seen it, but see bug#30800 which is this crash. From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 30 07:42:21 2018 Received: (at control) by debbugs.gnu.org; 30 Mar 2018 11:42:21 +0000 Received: from localhost ([127.0.0.1]:59444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f1sQH-0007Mr-Kf for submit@debbugs.gnu.org; Fri, 30 Mar 2018 07:42:21 -0400 Received: from mail-wm0-f47.google.com ([74.125.82.47]:40600) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f1sQF-0007MW-DQ for control@debbugs.gnu.org; Fri, 30 Mar 2018 07:42:20 -0400 Received: by mail-wm0-f47.google.com with SMTP id x4so16285723wmh.5 for ; Fri, 30 Mar 2018 04:42:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:message-id:to:from:subject; bh=UwPmnn1Fll4eIHmOsOz5YPbblRgHgv+PwdIcVrBgNUI=; b=aBtjygro3nMSaH5bw/GsL46Ff/jTXzIhld66x+n9x1SC8s0CkiZ7ptGPF51GRGS5Kq l02/6pWdhnq1480uuji+muE5Lk+91BgpxPykQ90WWSxUKD2PRr8VN9Q3p5d4USkWy78C 8xA6dN4jpRSibyhoC5ksrl90cEp3h+K1NYNAOHaZK/BpoYAjheis+r0PnJwKExX0kFrm lQWRYhcN+GmalaclG7Xvv3aIMBvw9CtZX8Ld7ZJ62FMXRctlQowSImLgL/+fEsgg8kZu GaEyyH7w7Rl3bbYqLh5GntYPDnCY224DhgSroQUCw71kygIfSUs0iCN4+Ef5yZYB4pYj AxRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:to:from:subject; bh=UwPmnn1Fll4eIHmOsOz5YPbblRgHgv+PwdIcVrBgNUI=; b=ofT3Bq7hN2zCb5FiXO+EWtFF5+yYzPZCoC+8zlL/IkCVh68C/6zzGXJtlZdOVL0aAD vMDkRJ6YhCJe2BhMDKaZMytOnAu3mjM+tRTNnDte/DE0ygQIrTtowxgdiDiK3kxoNG1e 88YxDwy09d2uS236R0WYgZxpSB7OcPrMB8At6XTeI5zxxU/qcOJM5m4hf3kuSNnVyML2 EmJw4DTuIxwUiGwnYEdd6Iww3gx1N0aQrZHsl2N8gv0KzBUqE/rwAExDN+uuPaRcBWOi vxbwqfEDZf8lrvufx4r0pwwcxsJBMlhwvtD5lhXwFRwM3JWvW7J8H1Hd9IZSUpa+ZMnw XukA== X-Gm-Message-State: ALQs6tAb00VQyL3oKhcV4p4wY0FuofG+4COviUEY3mEr2Rsfsf1nnpox kJpg6dr0VpDTOgdS0NYcUPTIOEC68pI= X-Google-Smtp-Source: AIpwx4+tOfFNoTd65vJZ8kylpjkiRO+bzX3yW1jS3ZdLERhpL5UGw3xhuxiMFFZugYM4sTiDsWDLrA== X-Received: by 10.28.216.148 with SMTP id p142mr2227990wmg.72.1522410133578; Fri, 30 Mar 2018 04:42:13 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-9137-e39e-5e68-b711.holly.idiocy.org. [2001:8b0:3f8:8129:9137:e39e:5e68:b711]) by smtp.gmail.com with ESMTPSA id l73sm13249302wma.10.2018.03.30.04.42.12 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Mar 2018 04:42:13 -0700 (PDT) Date: Fri, 30 Mar 2018 12:42:12 +0100 Message-Id: To: control@debbugs.gnu.org From: Alan Third Subject: control message for bug #30699 X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) tags 30699 fixed close 30699 27.1 From unknown Sat Aug 16 21:59:45 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 28 Apr 2018 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator