Subject: bug#66023: outline-minor-mode-use-buttons depends on whitespace-space face for some reason

From: Yilkal Argaw <[email-masked]>
Date: Mon, 18 Sep 2023 08:31:11 +0000

> PS: Maybe we need to add a new boolean option that will define
> whether to inherit the face attribute from the buffer or
> to use the outline faces.

I think that might be the way to handle it. It might even be worth having
that as the default because there might be other faces that inherit from
the buffer.

On Mon, Sep 18, 2023 at 6:59 AM Juri Linkov <[email-masked]> wrote:

> > I kind of make use of the relatively new outline-minor-mode-buttons
> > feature. I have specfic settings regarding whitespace mode and I
> > observed that hides the outline buttons deeper than level 2. Trying to
> > debug this I found that was related to the whitespace-space face and
> > but looking at outline.el gave me no hit's as to why that was the
> > reason. So I am filing this issue with the minimal configuration to
> > recreate the issue.
>
> Thanks for 100% reproducible case.  I don't know what whitespace-mode
> does with whitespace where outline-minor-mode-buttons adds own text
> properties for buttons, but it's clear there is a conflict between
> these two packages each trying to do own stuff in the same shared part
> of the buffer.  By default outline-minor-mode inherits text properties
> at the beginning of the line together with whitespace properties that
> make the buttons not visible.
>
> So you can just override the face inherited from the buffer with
> own customization:
>
> 1. M-x customize-icon RET outline-open RET and the same for outline-close
> 2. in the Plist section you can add own value for the face:
>
>             Plist:
>             [INS] [DEL]:
>                         Key: :face
>                         Value: outline-2
>
> PS: Maybe we need to add a new boolean option that will define
> whether to inherit the face attribute from the buffer or
> to use the outline faces.
>