Issue 103897 - Thai text in some UI elements will be displayed overlapped on Windows Vista / Windows 7
Summary: Thai text in some UI elements will be displayed overlapped on Windows Vista /...
Alias: None
Product: General
Classification: Code
Component: code (show other issues)
Version: OOo 3.1
Hardware: All Windows Vista
: P3 Trivial (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
Keywords: needmoreinfo
Depends on:
Blocks: 41707 92549
  Show dependency tree
Reported: 2009-07-30 10:05 UTC by tantai
Modified: 2013-08-07 15:31 UTC (History)
5 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---

input line screenshot (93.83 KB, image/png)
2009-07-30 10:08 UTC, tantai
no flags Details
list box screenshot (150.19 KB, image/png)
2009-07-30 10:08 UTC, tantai
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description tantai 2009-07-30 10:05:59 UTC
Step to reproduced :-

This will happen only when you enable  Tools > Options > Use system font for
user interface (which is the default).

1.Input line in Calc.
 1.1 Open Calc.
 1.2 Type “สวัสดี Hello ขอบคุณ Thanks” in the input line.
 1.3 You'll see the overlapped text in the input line.
2.List box.
 2.1 Open Calc.
 2.2 Choose menu Format > Cells.
 2.3 On the Numbers tab, choose Language: Thai, Category: Date.
 2.4 You'll see the overlapped text at the Format List box.
Comment 1 tantai 2009-07-30 10:08:16 UTC
Created attachment 63852 [details]
input line screenshot
Comment 2 tantai 2009-07-30 10:08:53 UTC
Created attachment 63853 [details]
list box screenshot
Comment 3 Olaf Felka 2009-07-30 10:32:59 UTC
which font do you use? what are the font settings? what are the locale settings
of your system? can you see  this in other OOo application to?
Comment 4 samphan 2009-07-30 11:51:31 UTC
Locale setting: 
I've tried both Thai and English-US as Windows locale with the same result.

This bug happen when I use the theme "Windows Aero" which use 
the font "Segoe UI". The bug disappear if I use the theme
"Windows Standard" which use the font "Tahoma". So this bug
is font-relate. But OOo UI should work with any font anyway.

The bug happen in any UI component such as the list of files
in File > Recent Documents if the filename is in Thai.
Or File > Properties > Description if you type Thai in any
text box.
Comment 5 samphan 2010-06-04 20:51:57 UTC
Still need more info?
Comment 6 samphan 2010-11-08 10:03:00 UTC
Reading the code at

bool Window::ImplCheckUIFont( const Font& rFont )
    269 {
    270     if( ImplGetSVData()->maGDIData.mbNativeFontConfig )
    271         return true;
    273     String aTestText;
    274     aTestText.Append( Button::GetStandardText( BUTTON_OK ) );
    283     aTestText.Append( Button::GetStandardText( BUTTON_ABORT ) );
    285     return HasGlyphs( rFont, aTestText ) >= aTestText.Len();
    286 }

We found that "bool Window::ImplCheckUIFont(const Font&)" only check the
validity of a font (in this case, the system font, e.g. Segoe UI") by only
checking the availability of important button texts. However, the UI font will
be used for many more cases, e.g. Calc input line, menu text,
File>Properties>Description text box. That is, it must support *any* script that
the current user may input, which may not limited to the current UI locale.

The problem show up in Thailand because we usually use English UI so "Segoe UI"
is thought by ImplCheckUIFont() as valid but actually it lacks Thai glyphs. If
the function also check for Thai glyphs then the result UI font will fallback to

Better implementation of ImplCheckUIFont() is needed.
Comment 7 samphan 2011-01-10 08:36:28 UTC
@of we'd like to fix this bug because it makes lots of trouble with Thai users.
Do you think we should fix ImplCheckUIFont() ?
Comment 8 Olaf Felka 2011-01-10 10:20:56 UTC
@ pl: Please have a look.
Comment 9 philipp.lohmann 2011-02-08 14:34:10 UTC
Resetting target accroding to new task handling scheme announced here:
Comment 10 Rob Weir 2013-07-30 02:22:46 UTC
Reset assignee on issues not touched by assignee in more than 2000 days.