← Back to team overview

touch-packages team mailing list archive

[Bug 1475205] Re: Random Chinese character missing with Ubuntu font

 

Copy bug description  https://bugreports.qt.io/browse/QTBUG-47547 and
paste here.

if developer specifies font family with Non-Regular style, potential risk to encounter Chinese characters are missing in some cases .
E.g 

import QtQuick 2.4 
import QtQuick.Controls 1.3 

ApplicationWindow {
    visible: true
    width: 1280
    height: 800 

    Text {
        anchors.centerIn: parent
        text: "系统设置"
        font.family: "Ubuntu"
        font.pixelSize: 69;
        font.weight: Font.Light
    }
}

Regarding the code snippets above.
For Chinese characters, QFontDatabase will use fallback font family("Droid Sans Fallback") with "Light" style when add font Glyph.
 since QFontDatabase checks if default style(Regular) of fallback font family "Droid Sans Fallback" is same as font style specified in qml(Font.Light). And QFontDatabase::isSmoothlyScalable will return false in such a case, which results in scene graph will 
use QSGDefaultGlyphNode when createGlyphNode is called. Issue happens.

However If scene graph doesn't prefer NativeGlyphNode and create GlyphNode based on Distance Field technique. It works fine.
https://drive.google.com/open?id=0B2H9ECPSSfqIMzhvU1hPUWNlWnc

Need to only check styleKey when foundry->styles == specified style
Will see feedback from Qt guys.
Thanks.

PS:  more test cases and patch can be found on https://bugreports.qt.io/browse/QTBUG-47547
Also I think we can override  bool QBasicFontDatabase::fontsAlwaysScalable() method in qlinuxfbfontdatabase.cpp under qtbase/src/plugins/platforms/ for platform independent purpose.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtdeclarative-opensource-
src in Ubuntu.
https://bugs.launchpad.net/bugs/1475205

Title:
  Random Chinese character missing with Ubuntu font

Status in Canonical System Image:
  Confirmed
Status in qtdeclarative-opensource-src package in Ubuntu:
  Confirmed
Status in ubuntu-font-family-sources package in Ubuntu:
  Incomplete
Status in ubuntu-ui-toolkit package in Ubuntu:
  Invalid

Bug description:
  After applied 50 GU setting in image, we started seeing randomly
  missing Chinese characters across scopes and apps header, not clipped
  at the begin or end of string, sometimes in the middle.

  STEPS:

  1. Switch display language to zh_CN in system settings
  2. Reboot the phone

  EXPECTED:

  I should see all header strings displayed properly.

  ACTUAL:

  Randomly missing character.

  VERSIONS:

  current build number: 51
  device name: arale
  channel: ubuntu-touch/rc-proposed/meizu.zh-proposed
  last update: 2015-07-16 04:59:10
  version version: 51
  version ubuntu: 20150716
  version device: 20150709-8965e37
  version custom: 20150716-819-9-6

  ---------- update ----------
  The problem of missing characters can be reproduced even on a desktop, outside of the header, without importing Ubuntu.Components:

  import QtQuick 2.0
  Item {
      width: 800
      height: 600

      Text {
          anchors.centerIn: parent
          text: "系统设置 one two"
          font.family: "Ubuntu"
          font.pixelSize: 69
          font.weight: Font.Light
      }
  }

  The problem only appears to occur with this specific combination of
  font family, pixelSize and weight. Tim Peeters reproduced the problem
  on vivid on a laptop without changing the default settings for the
  language (LANGUAGE="en_US").

To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1475205/+subscriptions


References