dbordak/telephone-line

telephone-line-accent-* face won't show propertized strings correctly

shackra opened this issue · 3 comments

I've been debugging this for a while thinking this is fault of all-the-icons package, but by accident I found that accent face won't respect propertized strings, in the following screenshot you can see something like a cloud and at its right an exclamation mark, the icons are supposed to be the same --an exclamation mark inside a circle-- but on the accent "side" the character is not rendered propertly using the FontAwesome font, take a look:

captura de pantalla de 2018-04-14 17-51-11

Since in the source code accent is composed of two faces that inherits from the mode-line face we should see improperly shown characters on the mode-line sans telephone-line-mode, right? wrong!:

captura de pantalla de 2018-04-14 18-00-57

The check inside a circle, the exclamation mark inside a red-ish triangle and the Git inside a square are shown perfectly.

This is what describe-face RET mode-line RET shows for my Emacs configuration:

Face: mode-line (sample) (customize this face)

Documentation:
Basic mode line face for selected window.

Defined in ‘faces.el’.

           Family: unspecified
          Foundry: unspecified
            Width: unspecified
           Height: unspecified
           Weight: unspecified
            Slant: unspecified
       Foreground: #F8F8F0
DistantForeground: unspecified
       Background: #49483E
        Underline: unspecified
         Overline: unspecified
   Strike-through: unspecified
              Box: nil
          Inverse: unspecified
          Stipple: unspecified
             Font: unspecified
          Fontset: unspecified
          Inherit: unspecified

Yeah, I'm aware of this but I'm not sure that there's any way I can fix it. If you propertize a string, it loses all its previous properties, and the colored segments (accent and evil) work by propertizing them.

(my personal solution is to put the segments where this sort of thing matters into a nil supersegment, but I dunno if that'll work for you)

(It actually does, I did that as a workaround)