Skip to content

Add support for Underlined independent of LVB_UNDERSCORE #2915

@zadjii-msft

Description

@zadjii-msft

Discussed with @DHowett-MSFT, as a follow up of #2554.

We've been using LVB_UNDERSCORE for underlines in the console since Windows 10 was released. However, LVB_UNDERSCORE is more of a box-drawing feature, it draws the underline fully under the text.

We should more correctly have a separate Underline state, that draws the underline at the baseline of the text, not just under it.

In VT, underline is in a trinary state: [No Underline, Underlined, Doubly Underlined]. We should make sure to store this in the buffer appropriately.

Technically, we believe characters could have both Underlined and LVB_UNDERSCORE.

Open Questions:

  • should Underline be read from the API as LVB_UNDERSCORE? Currently it is, but I think that it shouldn't. If you round-trip the attributes, then that would pollute the state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-VTVirtual Terminal sequence supportIssue-TaskIt's a feature request, but it doesn't really need a major design.Product-ConhostFor issues in the Console codebaseResolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions