diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2011-03-19 17:37:21 -0400 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2011-03-19 17:37:21 -0400 |
commit | fe0fb33e832ea83ffe8cab449eb41ed4acb691d9 (patch) | |
tree | be6666b348a83ea4141b3fdb76dd9c7ea8ece86b | |
parent | b14e3e21ec6702d27257a1400681fc36ee10282f (diff) | |
download | emacs-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/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/facemenu.el | 37 |
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)) |