Subject: bug#36803: closed (Re: bug#36803: 27.0.50; Update mode-line of every window when compilation ends)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 27 Jul 2019 14:01:02 +0000

Your bug report

#36803: 27.0.50; Update mode-line of every window when compilation ends

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36803: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36803
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#36803: 27.0.50; Update mode-line of every window when compilation ends
From: Stefan Monnier <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked]
Date: Sat, 27 Jul 2019 10:00:46 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> If there's no way for a Lisp program to inject a global process-status
> element into the mode line, then I guess your patch is TRT, indeed.

Thanks, installed,

        Stefan

Subject: 27.0.50; Update mode-line of every window when compilation ends
From: Kévin Le Gouguec <[email-masked]>
To: [email-masked]
Date: Wed, 24 Jul 2019 23:22:11 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

The recent changes on the compilation-in-progress indicator[1] made me
realize that the indicator lingers in the mode-lines of some windows.
To reproduce from emacs -Q:

    C-x 2
    C-x 2
    M-x compile RET C-a C-k true RET

"[Compiling]" correctly disappears from the current window and the
compilation window, but it lingers on the mode-line of the third window.

The attached patch trivially fixes the issue; I do not know whether it's
appropriate, or maybe too heavyweight.

>From 25bc31d85ffd7e27e00ba73bac47856def9e97ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20Le=20Gouguec?= <[email-masked]>
Date: Wed, 24 Jul 2019 22:50:59 +0200
Subject: [PATCH] Update every mode-line when compilation ends

Otherwise the "[Compiling]" indicator lingers in some of them.

* lisp/progmodes/compile.el (compilation-handle-exit): Refresh
every mode-line.
---
 lisp/progmodes/compile.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index f4750c0059..657650b488 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -2214,7 +2214,7 @@ compilation-handle-exit
                                  'compilation-mode-line-exit)))
            compilation-mode-line-errors))
     ;; Force mode line redisplay soon.
-    (force-mode-line-update)
+    (force-mode-line-update t)
     (if (and opoint (< opoint omax))
 	(goto-char opoint))
     (run-hook-with-args 'compilation-finish-functions cur-buffer msg)))
-- 
2.22.0

WDYT?

[1] Make "Compiling" in the mode line a clickable command
    http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=3479ec7332a474b3400cbc6b681c2a1f5637db94

In GNU Emacs 27.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version 3.24.9, cairo version 1.16.0)
 of 2019-07-03 built on my-little-tumbleweed
Repository revision: 22760ab357dd8124c856b76a545e562917872d78
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12005000
System Description: openSUSE Tumbleweed

Configured using:
 'configure --with-xwidgets --with-cairo'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS XWIDGETS JSON PDUMPER
LCMS2 GMP

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
  global-magit-file-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  show-paren-mode: t
  minibuffer-depth-indicate-mode: t
  icomplete-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  electric-pair-mode: t
  diff-hl-flydiff-mode: t
  global-diff-hl-mode: t
  delete-selection-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:
None found.

Features:
(shadow sort mail-extr magit-patch bug-reference gnus-async qp gnus-ml
nndraft nnmh nnfolder utf-7 epa-file 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 mailcap nntp gnus-cache
gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
gnus-win gnus nnheader emacsbug sendmail magit-extras flyspell ispell
rect thingatpt magit-submodule magit-obsolete magit-popup 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 imenu magit-diff smerge-mode magit-core
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process magit-mode transient git-commit magit-git magit-section
magit-utils crm log-edit message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec epa derived epg gnus-util rmail
rmail-loaddefs text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log
with-editor async-bytecomp async server dash executable cus-edit
wid-edit whitespace eieio-opt speedbar sb-image ezimage dframe shell
pcomplete help-fns radix-tree cl-print debug backtrace find-func
misearch multi-isearch vc-git files-x pcase rx delight advice
eighters-theme cl-extra rg rg-ibuffer rg-result wgrep-rg wgrep s
rg-history rg-header rg-compat ibuf-ext ibuffer ibuffer-loaddefs grep
compile comint ansi-color ring quail help-mode edmacro kmacro disp-table
paren mb-depth icomplete page-break-lines elec-pair diff-hl-flydiff diff
diff-hl vc-dir ewoc vc vc-dispatcher diff-mode easy-mmode delsel
cus-start cus-load mule-util info package easymenu epg-config
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 cl-loaddefs cl-lib tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd 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 threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting xwidget-internal cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 285991 35395)
 (symbols 48 25540 1)
 (strings 32 82326 4257)
 (string-bytes 1 2726046)
 (vectors 16 48859)
 (vector-slots 8 1366992 49654)
 (floats 8 259 339)
 (intervals 56 4124 4946)
 (buffers 992 32))