A1404Sのバグ?
自前で記述している、ダイアログの文字が画面外に
はみ出してしまうというバグを持っていたアプリの修正していた。
選択肢部分で改行するわけには行かないところであったため
現在使用しているノーマルフォントの幅が22ドットより
大きかった場合、スモールフォントを使用するようにプログラムを組んでいた。
アプリの端末チェックを任せていた他の会社から
A1404Sのみ、文字が画面外にはみ出てしまうとらしいという連絡を受け
その端末を送ってもらった。
と記述し、widの値を確認したところ、12が入っていた。
AECHAR s[] = { 'あ', '\0' };
int wid = IDISPLAY_MeasureText( display, AEE_FONT_NORMAL, s );
なお、この端末は24が返ってこなければおかしいのである。
次に
と記述し、widの値を確認したところ、36が入っていた。
AECHAR s[] = { 'あ', 'い', '\0' };
int wid = IDISPLAY_MeasureText( display, AEE_FONT_NORMAL, s );
その後、いろいろなテストを行った結果、最初の全角文字のみ半角として扱われるらしい。
仕方がないので、判定方法を
と記述することにより、正常な値を取得できることとなった。
AECHAR s[] = { 'A', 'A', '\0' };
int wid = IDISPLAY_MeasureText( display, AEE_FONT_NORMAL, s );