Re: [PATCH] emacs: notmuch-search: fix faces

Subject: Re: [PATCH] emacs: notmuch-search: fix faces

Date: Mon, 27 Aug 2012 20:22:15 -0400

To: Michal Nazarewicz

Cc: notmuch@notmuchmail.org

From: Austin Clements


Quoth Michal Nazarewicz on Aug 28 at  1:11 am:
> > On Thu, Aug 23 2012, Michal Nazarewicz <mpn@google.com> wrote:
> >> For some reason the faces do not get applied when 'face property is
> >> used, but they work correctly with 'font-lock-face property.  This
> >> commit changes notmuch-search to use the latter.
> 
> Jameson Graef Rollins <jrollins@finestructure.net> writes:
> > Hi, Michal.  Can you say a bit more about what's motivating this?  This
> > feature seems to work fine for me, so I would like to understand what's
> > not working for you.  I'm certainly no expert on emacs font handling,
> > though, so maybe this is the proper thing to do.  Thanks.
> 
> I'm not an expert either, but with this patch applied I see colours,
> without this patch, I don't see colours, ie. everything is rendered
> using the default face.
> 
> I'm also not entirely sure if that's the correct way of doing things
> since 'face seems to be working in other modes (most notably
> notmuch-show).  By posting, I'm also hoping that someone more
> experienced will maybe take a look to see what's going on here... ;)
> 
> For some more info, in notmuch-show mode, I get-text-property of nil for
> both 'face and 'font-lock-face, but in message-mode or in *scratch*
> buffer I'm getting nil for 'font-lock-face but non-nil for 'face.  With
> the patch, I'm getting the same non-nil for both 'face and
> 'font-lock-face; without the patch, I'm getting nil for both.

This is odd.  Could you give more details about your environment?  In
particular, what Emacs version are you running and might you have any
unusual Emacs packages installed or customizations set?

The unusual thing about font-lock-face is that it only gets applied if
font-lock is enabled; otherwise it's ignored.  One theory is that the
nil font-lock-face (without your patch) is causing font-lock to
*override* the face property that we set.  I don't think font-lock
usually does that, but perhaps in some situations, it will?

Thread: