dbordak / telephone-line

A new implementation of Powerline for Emacs
GNU General Public License v3.0
550 stars 51 forks source link

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

Open shackra opened 6 years ago

shackra commented 6 years ago

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
dbordak commented 6 years ago

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.

dbordak commented 6 years ago

(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)

shackra commented 6 years ago

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