Closed Bug 79284 Opened 23 years ago Closed 23 years ago

Thai shaping not handled by gfx/src/nsRenderingContext

Categories

(Core :: Internationalization, defect)

Sun
Solaris
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Future

People

(Reporter: prabhat.hegde, Assigned: roland.mainz)

References

(Blocks 1 open bug, )

Details

(Keywords: intl)

Attachments

(4 files)

On Unix platforms, scripts which require generation of presentation
forms (context sensitive shaping) before being rendered are not
handled by mozilla, in this case for thai.

For example, rendering of URL http://www.thai.net using any of the
fonts specified for TIS620 or ISO8859-11 in nsFontMetricsGTK.cpp
is in-correct.

This needs to be corrected in order to present thai content on
*nix platforms. The output is correct on Windows platform since
Drawing and Measurement API in windows automatically handle shaping.
Changing QA contact to katakai@japan.sun.com for now.
QA Contact: andreasb → katakai
Reassign to bstell.
Assignee: nhotta → bstell
Keywords: intl
hi brian,

I've attached a patch that fixes this problem. Patch is strictly for review
purposes (as some of the makefiles are for Solaris Make & not gnumake)

The approach is as below:

Create a library based on pango but eliminating the PangoFont and glib1.3
related dependencies:

A> Use API and implementation of shaper modules from pango.
B> Use API for layout from Pango.

Modifiy SingleByteConvert, currently used for thai FontCharsets to handle
thai shaping.

Note that this architecture allows us to transparently handle any complex
script that requires shaping with minor code changes in mozilla.

For ex, to add support for indic scripts:

A> Write a indic shaper.
B> Run tool to update pango.modules.
C> Add/Update SingleByteConvert, DoubleByteConvert implementation for the
   target script.

As you may expect, this does not solve the CTL problem. Code changes for Cursor
positioning and Selection are separate. 

I also have a build based on the above that works with all popular thai
presentation forms.

prabhat.
Blocks: thai
Status: NEW → ASSIGNED
Target Milestone: --- → Future
Prabhat- can we wrap the majority of the TISConvert call into a 
nsIUnicodeEncoder interface so we will have similar call struct as the rest of 
the code in GTK GFX? I don't think we need a new XPCOM interface for the purpose 
of GTK GFX changes, right? We can add new interface later if we need to deal 
with layout issues. Using the existing interface will reduce a lot of issues. 
please do not attach attachement in mime type application/octet-stream
What are they? zip ? tar? gz?
frank, Yes, TISConvert interface could be mapped onto nsIUnicodeEncoder;
As you say for GFX/GTK purposes only. However an XPCOM interface will be
needed in the future for layout additions.

Sorry for the mime attachment type (its tar.Z this time). 

prabhat
Depends on: 84380
Added 84394 to track this bug. Brian, maybe you can choose which
bugs to close as duplicate and which ones to leave open - thanks.

QA team, if you would like to add any keywords to track thai ctl bugs,
please let me know so that i can add them as keywords when i update 
any thai related bugs - thanks.

Depends on: 84394
--> ftang
Assignee: bstell → ftang
Status: ASSIGNED → NEW
bulk move NEW FUTURE bug to ASSIGN
Status: NEW → ASSIGNED
prabhat:
Can we close this bug or mark this as duplicate ?
hi roland,

This bug can be marked closed.
Stealing...
Assignee: ftang → Roland.Mainz
Status: ASSIGNED → NEW
Closing per comment 15, this bug has been fixed as part of bug 84380.
Marking bug as FIXED.

prabhat/katakai, can you verify, please ?
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: