If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Thai shaping not handled by gfx/src/nsRenderingContext

RESOLVED FIXED in Future

Status

()

Core
Internationalization
RESOLVED FIXED
17 years ago
16 years ago

People

(Reporter: Prabhat Hegde, Assigned: Roland Mainz)

Tracking

(Blocks: 1 bug, {intl})

Trunk
Future
Sun
Solaris
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(URL)

Attachments

(4 attachments)

(Reporter)

Description

17 years ago
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.

Comment 1

17 years ago
Changing QA contact to katakai@japan.sun.com for now.
QA Contact: andreasb → katakai

Comment 2

17 years ago
Reassign to bstell.
Assignee: nhotta → bstell
Keywords: intl
(Reporter)

Comment 3

17 years ago
Created attachment 33969 [details]
Patch for review with library and changed sources
(Reporter)

Comment 4

17 years ago
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.

Updated

17 years ago
Blocks: 65896
Status: NEW → ASSIGNED
Target Milestone: --- → Future
(Reporter)

Comment 5

17 years ago
Created attachment 34834 [details]
Newer version of a pango based shaping/layout library
(Reporter)

Comment 6

17 years ago
Created attachment 34835 [details]
Updated Object for CTL Interfaces to new pango library
(Reporter)

Comment 7

17 years ago
Created attachment 34836 [details]
Diff w.r.t 05/11 nightly nsFontMetricsGTK.cpp

Comment 8

17 years ago
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. 

Comment 9

17 years ago
please do not attach attachement in mime type application/octet-stream
What are they? zip ? tar? gz?
(Reporter)

Comment 10

17 years ago
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
(Reporter)

Updated

17 years ago
Depends on: 84380
(Reporter)

Comment 11

17 years ago
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

Comment 12

16 years ago
--> ftang
Assignee: bstell → ftang
Status: ASSIGNED → NEW

Comment 13

16 years ago
bulk move NEW FUTURE bug to ASSIGN
Status: NEW → ASSIGNED
(Assignee)

Comment 14

16 years ago
prabhat:
Can we close this bug or mark this as duplicate ?
(Reporter)

Comment 15

16 years ago
hi roland,

This bug can be marked closed.
(Assignee)

Comment 16

16 years ago
Stealing...
Assignee: ftang → Roland.Mainz
Status: ASSIGNED → NEW
(Assignee)

Comment 17

16 years ago
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
Last Resolved: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.