Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-97400

fallback emoji rendering breaks if emoji sequence contains a character in the preferred font

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.15.2
    • GUI: Text handling
    • None
    • OS: Arch Linux x86_64 (kernel 5.14.9)
      DE: KDE
      Fontconfig: Noto Color Emoji is explicitly set as a fallback font for all of my top level font preferences.
    • Linux/X11

    Description

      This is related to https://bugreports.qt.io/browse/QTBUG-85744 but it is not that bug.

      When you have an emoji font set as a fallback, a base font will break emoji not only if the emoji itself is present in the top level font (the bug linked above), but also if a single character in an emoji sequence is present in the top level font. In other words, it's not that Qt is picking the wrong font for an emoji, but that it will pick different fonts for characters that should be parsed as part of the same emoji!

      For example, "man kneeling"  displays as  <person kneeling> + <male> in KWrite because my selected font (Source Code Pro) contains the <male> symbol.

      Even if it's reasonable for Qt to display the single emoji ♂ in my top level font (not really: the Unicode standard says that Qt should be honoring the emoji presentation selector), it definitely shouldn't be treating the single emoji <man kneeling> as if it were two different emojis, when it's one emoji utilizing a ZWJ.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              esabraha Eskil Abrahamsen Blomfeldt
              adamfontenot Adam Fontenot
              Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes