summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-03-19 17:37:21 -0400
committerChong Yidong <cyd@stupidchicken.com>2011-03-19 17:37:21 -0400
commitfe0fb33e832ea83ffe8cab449eb41ed4acb691d9 (patch)
treebe6666b348a83ea4141b3fdb76dd9c7ea8ece86b
parentb14e3e21ec6702d27257a1400681fc36ee10282f (diff)
downloademacs-fe0fb33e832ea83ffe8cab449eb41ed4acb691d9.tar.gz
Fix facemenu to populate buffer inside the with-help-window call.
See http://lists.gnu.org/archive/html/emacs-devel/2011-02/msg01193.html * facemenu.el (list-colors-display): Call list-faces-display from inside with-help-window. (list-colors-print): Use display property to align the final column, instead of checking window-width.
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/facemenu.el37
2 files changed, 17 insertions, 27 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 55f0b52bb41..5244e261c11 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2011-03-19 Chong Yidong <cyd@stupidchicken.com>
+
+ * facemenu.el (list-colors-display): Call list-faces-display
+ inside with-help-window.
+ (list-colors-print): Use display property to align the final
+ column, instead of checking window-width.
+
2011-03-19 Eli Zaretskii <eliz@gnu.org>
* emerge.el (emerge-metachars): Separate value for ms-dos and
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 97862afb678..fffe09a84a5 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -567,18 +567,12 @@ You can change the color sort order by customizing `list-colors-sort'."
(with-help-window buffer-name
(with-current-buffer standard-output
(erase-buffer)
+ (list-colors-print list callback)
+ (set-buffer-modified-p nil)
(setq truncate-lines t)))
- (let ((buf (get-buffer buffer-name))
- (inhibit-read-only t))
- ;; Display buffer before generating content, to allow
- ;; `list-colors-print' to get the right window-width.
- (with-selected-window (or (get-buffer-window buf t) (selected-window))
- (with-current-buffer buf
- (list-colors-print list callback)
- (set-buffer-modified-p nil)))
- (when callback
- (pop-to-buffer buf)
- (message "Click on a color to select it."))))
+ (when callback
+ (pop-to-buffer buffer-name)
+ (message "Click on a color to select it.")))
(defun list-colors-print (list &optional callback)
(let ((callback-fn
@@ -595,30 +589,19 @@ You can change the color sort order by customizing `list-colors-sort'."
(let* ((opoint (point))
(color-values (color-values (car color)))
(light-p (>= (apply 'max color-values)
- (* (car (color-values "white")) .5)))
- (max-len (max (- (window-width) 33) 20)))
+ (* (car (color-values "white")) .5))))
(insert (car color))
(indent-to 22)
(put-text-property opoint (point) 'face `(:background ,(car color)))
(put-text-property
(prog1 (point)
(insert " ")
- (if (cdr color)
- ;; Insert as many color names as possible, fitting max-len.
- (let ((names (list (car color)))
- (others (cdr color))
- (len (length (car color)))
- newlen)
- (while (and others
- (< (setq newlen (+ len 2 (length (car others))))
- max-len))
- (setq len newlen)
- (push (pop others) names))
- (insert (mapconcat 'identity (nreverse names) ", ")))
- (insert (car color))))
+ ;; Insert all color names.
+ (insert (mapconcat 'identity color ",")))
(point)
'face (list :foreground (car color)))
- (indent-to (max (- (window-width) 8) 44))
+ (insert (propertize " " 'display '(space :align-to (- right 9))))
+ (insert " ")
(insert (propertize
(apply 'format "#%02x%02x%02x"
(mapcar (lambda (c) (lsh c -8))