On Jun 1, 2013, at 3:17 PM, Carsten Dominik wrote: > Hi Xiao, > > I remember that I struggled with the problem that I had to make sure that column view used a fixed-width face - and this was the solution that worked - not a particular pretty one, admittedly. > > Do you have an idea on how to change this code that it will always work? I'd be very happy to accept a good patch. > > - Carsten Hi Carsten, I wasn't sure what you were talking about until I tried out the theme, leuven... and that was really fanciful and totally screwed the column-view without your fixed-width face fix. In order to make it more flexible, instead of just set it once when org-faces.el is loaded, I think enforcing it every time when column-view is called is a better choice. Thus came the following little patch. diff --git a/lisp/org-colview.el b/lisp/org-colview.el index a98deec..f3b8e42 100644 --- a/lisp/org-colview.el +++ b/lisp/org-colview.el @@ -169,8 +169,10 @@ This is the compiled version of the format.") (get-text-property (point-at-bol) 'face)) 'default)) (color (list :foreground (face-attribute ref-face :foreground))) - (face (list color 'org-column ref-face)) - (face1 (list color 'org-agenda-column-dateline ref-face)) + (font (list :height (face-attribute 'default :height) + :family (face-attribute 'default :family))) + (face (list color font 'org-column ref-face)) + (face1 (list color font 'org-agenda-column-dateline ref-face)) (cphr (get-text-property (point-at-bol) 'org-complex-heading-regexp)) pom property ass width f string ov column val modval s2 title calc) ;; Check if the entry is in another buffer. diff --git a/lisp/org-faces.el b/lisp/org-faces.el index 5472964..e968657 100644 --- a/lisp/org-faces.el +++ b/lisp/org-faces.el @@ -217,12 +217,6 @@ column view defines special faces for each outline level. See the file "Face for column display of entry properties." :group 'org-faces) -(when (fboundp 'set-face-attribute) - ;; Make sure that a fixed-width face is used when we have a column table. - (set-face-attribute 'org-column nil - :height (face-attribute 'default :height) - :family (face-attribute 'default :family))) - (defface org-agenda-column-dateline (org-compatible-face 'org-column '((t nil))) In this way, the column-view face will not be bound only to the font family and size at the time of loading org-faces.el, but anytime column-view is called. I'm not sure if I covered all the cases, but it seems to work well for me. I hope the patch is not broken by the mail app, but I guess it is simple enough to read it in one sip of coffee, though I tracked the issue and wrote the patch with one cup. Best, Xiao-Yong PS. I realized it was almost a month-old email. Org-mode is really good at remembering it for me.