+2013-03-27 Eli Zaretskii <eliz@gnu.org>
+
+ * facemenu.el (list-colors-callback): New defvar.
+ (list-colors-redisplay): New function.
+ (list-colors-display): Install list-colors-redisplay as the
+ revert-buffer-function. (Bug#14063)
+
2013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
* minibuffer.el (completion-pcm--merge-completions): Make sure prefixes
(* (nth 1 c-rgb) 0.7151522)
(* (nth 2 c-rgb) 0.0721750))))))
+(defvar list-colors-callback nil
+ "Value of CALLBACK arg passed to `list-colors-display'; internal use.")
+
+(defun list-colors-redisplay (_ignore-auto _noconfirm)
+ "Redisplay the colors using `list-colors-sort'.
+
+This is installed as a `revert-buffer-function' in the *Colors* buffer."
+ (list-colors-display nil (buffer-name) list-colors-callback))
+
(defun list-colors-display (&optional list buffer-name callback)
"Display names of defined colors, and show what they look like.
If the optional argument LIST is non-nil, it should be a list of
colors to display. Otherwise, this command computes a list of
colors that the current display can handle. Customize
`list-colors-sort' to change the order in which colors are shown.
+Type `g' or \\[revert-buffer] after customizing `list-colors-sort'
+to redisplay colors in the new order.
If the optional argument BUFFER-NAME is nil, it defaults to *Colors*.
(erase-buffer)
(list-colors-print list callback)
(set-buffer-modified-p nil)
- (setq truncate-lines t)))
+ (setq truncate-lines t)
+ (setq-local list-colors-callback callback)
+ (setq revert-buffer-function 'list-colors-redisplay)))
(when callback
(pop-to-buffer buffer-name)
(message "Click on a color to select it.")))