From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Semyonov via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#50337: 28.0.50; (while-no-input (redisplay) forms...) block behaves differently when window-system is pgtk Date: Thu, 02 Sep 2021 16:34:19 +0300 Message-ID: <87tuj3p0dg.fsf@dsemy.com> Reply-To: Daniel Semyonov Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2171"; mail-complaints-to="usenet@ciao.gmane.io" To: 50337@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Sep 02 16:59:22 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mLoBV-0000Kg-Nq for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 02 Sep 2021 16:59:21 +0200 Original-Received: from localhost ([::1]:60354 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mLoBT-0003VL-MH for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 02 Sep 2021 10:59:19 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41200) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLoBC-0003Tz-Ti for bug-gnu-emacs@gnu.org; Thu, 02 Sep 2021 10:59:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58421) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mLoBC-00039G-Lq for bug-gnu-emacs@gnu.org; Thu, 02 Sep 2021 10:59:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mLoBC-00050j-ML for bug-gnu-emacs@gnu.org; Thu, 02 Sep 2021 10:59:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Daniel Semyonov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 02 Sep 2021 14:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 50337 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.163059470419199 (code B ref -1); Thu, 02 Sep 2021 14:59:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 2 Sep 2021 14:58:24 +0000 Original-Received: from localhost ([127.0.0.1]:41732 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mLoAZ-0004za-Gp for submit@debbugs.gnu.org; Thu, 02 Sep 2021 10:58:24 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:40748) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mLmrO-0002Ul-B2 for submit@debbugs.gnu.org; Thu, 02 Sep 2021 09:34:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48490) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLmrN-0002jv-7Z for bug-gnu-emacs@gnu.org; Thu, 02 Sep 2021 09:34:30 -0400 Original-Received: from dsemy.com ([46.23.89.208]:9460) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLmrK-0005g8-Pp for bug-gnu-emacs@gnu.org; Thu, 02 Sep 2021 09:34:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=dkim; bh=4kWMoX89Z6XcJ dZ68pMqRaaYbpCRybeY7pD7XBRkl6A=; h=date:subject:to:from; d=dsemy.com; b=N8cTR+ukaWGQlt3fEkrl5lbp56mTSqL7ipQN/DZKyYAre3/VyidPP7faXJWG/zsKLXMn g1ykhuaSKhoyHBFFWhvhAc5L6JSWzQk3UlTvVrwNESw177JLUfcSm7J7NPh09gYeRGUy48 FHQzcL0XzFV5YIVSbPt1eZegCW9kg0FgEoZrfYOmTlSePwpd9XfX3KBFRU5FXwfQxXb0ZJ Cm7ZpyzDZrUSz66/tpsjvKid+tLipLmYZDwmw0DgRhOkrq6BoRow7uSC2s+takmbD/l1OO 9TShoMuYygTBZTjD1/3EnxyYYpyO0se7rFmlKzAPmHfCBkB7VgMAMRdeoMIayQaQ== Original-Received: from coldharbour ( [10.51.82.2]) by dsemy.com (OpenSMTPD) with ESMTPSA id 42ea1287 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO) for ; Thu, 2 Sep 2021 16:34:21 +0300 (IDT) Received-SPF: pass client-ip=46.23.89.208; envelope-from=daniel@dsemy.com; helo=dsemy.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 02 Sep 2021 10:58:22 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:213274 Archived-At: This was tested on both a build configured with "--without-x --with-pgtk" and a build configured with "--with-x --with-x-toolkit=no" (my previous configuration before switching to the pgtk branch). Both were built from the pgtk branch. In the following steps I load a package I'm developing called Vcomplete[1] which uses the following function to update the '*Completions*' buffer when providing input to the minibuffer (the '*Completions*' buffer also opens automatically when starting minibuffer completion): (defun vcomplete--update-in-minibuffer (&rest _args) "Update the completion list when completing in a minibuffer." (while-no-input (redisplay) (unless (memq this-command vcomplete-no-update-commands) (minibuffer-completion-help)))) For more details look at the package, specifically the section called 'Visual completion mode' (it's not very complex and I don't want to make this report too long, I can provide more details if necessary). Also, the effect is much more apparent when 'completions-detailed' is set to t (presumably because it takes longer to display the completions). The following steps are performed on both builds: 1. emacs -Q 2. M-x load-file RET ~/src/vcomplete/vcomplete.el RET 3. M-x vcomplete-mode RET 4. C-h f bac (combination of letters which correspond to completions) On the X build, as soon as I start typing letters in step 4 the '*Completions*' buffer immediately updates; on the pgtk build there is a noticable (maybe half a second) delay during which I also can't see the letters I'm typing into the minibuffer, in addition to the first few letters being entered into the minibuffer twice (the amount of letters duplicated changes). The behavior on the X build lines up with the documentation strings of 'redisplay' and 'while-no-input', so I'm assuming this is a bug in pgtk redisplay code (although my only knowledge of redisplay comes from reading documentation, so I might be off). Hope I did everything right, this is the first bug report I'm submitting, thanks! Daniel [1] https://git.sr.ht/~dsemy/vcomplete In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.29, cairo version 1.16.0) of 2021-08-31 built on coldharbour Repository revision: aa437f6a59337d980795370d55edebb029ecf10b Repository branch: master Windowing system distributor 'System Description: void Configured using: 'configure --without-dbus --without-gsettings --without-x --with-pgtk --prefix=/opt/Emacs' Configured features: CAIRO FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS XIM GTK3 ZLIB Important settings: value of $LC_COLLATE: C value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Help Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t shell-dirtrack-mode: t emms-mode-line-mode: t emms-playing-time-display-mode: t emms-playing-time-mode: t pdf-occur-global-minor-mode: t show-paren-mode: t electric-pair-mode: t repeat-mode: t swsw-mode: t global-auto-revert-mode: t delete-selection-mode: t vcomplete-mode: t display-time-mode: t minibuffer-line-mode: t minibuffer-electric-default-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/daniel/etc/emacs/elpa/transient-0.3.6/transient hides /opt/Emacs/share/emacs/28.0.50/lisp/transient Features: (shadow emacsbug two-column project dired-aux term ehelp shortdoc view misearch multi-isearch mule-util vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc bug-reference face-remap magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff git-commit rx log-edit pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor shell pcomplete magit-mode transient magit-git magit-section magit-utils crm dash deuglify gnus-cus gnus-demon gnus-diary nndiary gnus-draft gnus-dup gnus-fun gnus-html url-queue gnus-kill gnus-logic gnus-mh mh-comp mh-scan mh-gnus mh-e mh-compat mh-buffers mh-loaddefs gnus-registry registry eieio-base gnus-salt gnus-uu yenc gnus-vm sendmail nnselect gnus-search eieio-opt speedbar ezimage dframe help-fns radix-tree cl-print debug backtrace noutline outline vc-git vc-dispatcher emms-playlist-mode emms-source-playlist emms-source-file locate url-http url-gw url-cache url-auth nnrss mm-url qp smerge-mode diff diff-mode easy-mmode mm-archive sort smiley gnus-cite mail-extr gnus-async gnus-bcklg gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 epa-file cl-extra gnutls network-stream nsm gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache gnus-sum shr kinsoku svg dom gnus-group gnus-undo init-gnus gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message rmc puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs mail-utils cus-start webjump time-date checkdoc lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr help-mode flymake-proc flymake warnings thingatpt cal-julian solar cal-dst cal-menu calendar cal-loaddefs flyspell ispell edmacro kmacro init-interfaces grep init-emms emms-mode-line emms-playing-time emms-player-mpv emms-player-simple emms-info-opusinfo emms-info emms-later-do emms emms-compat init-web elpher-eww-emulation init-volume init-pass auth-source-pass pinentry init-programs pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local find-func cedet pdf-isearch let-alist pdf-misc imenu pdf-tools compile comint ansi-color ring pdf-view bookmark text-property-search jka-compr pdf-cache pdf-info tq pdf-util advice format-spec image-mode exif dired dired-loaddefs init-term init-eshell init-programming paren elec-pair init-ui repeat swsw autorevert filenotify delsel vcomplete battery dbus xml time minibuffer-line minibuf-eldef pcase init-base server finder-inf package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv info cus-edit pp cus-load wid-edit cl-loaddefs cl-lib iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/pgtk-win pgtk-win term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads inotify dynamic-setting font-render-setting cairo move-toolbar gtk x-toolkit pgtk lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 634923 559779) (symbols 48 37441 3) (strings 32 180878 95332) (string-bytes 1 7865170) (vectors 16 76290) (vector-slots 8 1556469 156147) (floats 8 732 742) (intervals 56 8164 3393) (buffers 992 35))