On Jun 1, 2013, at 3:17 PM, Carsten Dominik <carsten.domi...@gmail.com> 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.

Reply via email to