bug#81213: 31.0.90; Package list is colorized after upgrading packages
Philip Kaludercic <[email protected]> Fri, 31 Jul 2026 20:06:37 +0000
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <[email protected]> |
Sean Whitton <[email protected]> writes: > Joost Kremers [10/Jun 9:12am +02] wrote: >> I do `M-x list-packages`, then `/u` to show upgradable packages, then `x` >> to install them, packages that are to be installed get a green background, >> packages that are to be deleted a red background. After the installation >> finishes, the full list of packages is shown again, but the background >> colors remain, with the top half of the buffer in green, the bottom half in >> red. (I'm not sure if it's exactly 50-50, but thereabout, I reckon). I took a look at this a few weeks back, and it wasn't 50-50. It is more or less random depending on what packages you were upgrading or uninstalling, as the underlying issue The easiest fix would be just to remove the overlays when performing the upgrade (untested!): Can you apply this locally and see if it makes a difference in your usage? >> >> I don't really understand the purpose of highlighting installable and >> deleteable packages this way, because the highlighting is only applied >> after pressing `x`. I assume they get highlighted when one presses `U`, but >> I never use that (I prefer `/u`). What I did not get about your bug report is if you upgrade packages manually, or if you filter the packages using "/ u" and then select the packages by hand using "I" and "D" (or equivalently "U") _or_ if you upgrade the packages one-by-one. >> At the very least, the highlighting should be removed again after the >> packages have been upgraded. > > Thanks. Adding Philip.
(unnamed)
(text/x-patch, 582 B)
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 062659fc912..b3eca216ae1 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -4068,6 +4070,7 @@ package-menu--partition-transaction
(defun package-menu--perform-transaction (install-list delete-list)
"Install packages in INSTALL-LIST and delete DELETE-LIST.
Return nil if there were no errors; non-nil otherwise."
+ (remove-overlays (point-min) (point-max) 'pkg-menu-ov t)
(let ((errors nil))
(if install-list
(let ((status-format (format ":Installing %%d/%d"