microsoft / terminal

The new Windows Terminal and the original Windows console host, all in the same place!
MIT License
95.4k stars 8.3k forks source link

cursor draws behind underline #6499

Open DHowett opened 4 years ago

DHowett commented 4 years ago

It is particularly noticeable with the emptyBox cursor.

image

zadjii-msft commented 4 years ago

Oh, cause underlines are drawn on top of the text, in a third pass, aren't they ;___;

This is probably a regression from #6337, isn't it.

I suppose I could still do the post-text pass in PaintCursor. I'm tentatively tossing blocking/1.1 on this, feel free to punt.

j4james commented 4 years ago

If you're looking at possibly changing the render-order here, you may want to think about how this would be impacted by underline/decoration color, should we ever choose to support that. Because if the underline color is different from the text color, I think it should technically be rendered below the text. To make things more complicated, strike-though would still have to be rendered above the text.

I'm not particularly keen on that functionality myself, but just thought it worth mentioning here in case it affects how you want to approach this.

miniksa commented 4 years ago

Here's another thing to throw in there. Technically we have underline information provided to us by DirectWrite that we're currently ignoring in favor of just drawing a line at the bottom of the box. The DWrite underline information compensates for the stylistic properties of the font. We may want to be using that instead.