From: <k_s...@us...> - 2008-09-06 13:17:45
|
Revision: 13537 http://jedit.svn.sourceforge.net/jedit/?rev=13537&view=rev Author: k_satoda Date: 2008-09-06 13:17:40 +0000 (Sat, 06 Sep 2008) Log Message: ----------- Replaced createGlyphVector() to layoutGlyphVector() to improve rendering of complex text layout in TextArea. (SF.net bug #981012) Modified Paths: -------------- jEdit/trunk/doc/CHANGES.txt jEdit/trunk/org/gjt/sp/jedit/syntax/Chunk.java Modified: jEdit/trunk/doc/CHANGES.txt =================================================================== --- jEdit/trunk/doc/CHANGES.txt 2008-09-06 11:11:16 UTC (rev 13536) +++ jEdit/trunk/doc/CHANGES.txt 2008-09-06 13:17:40 UTC (rev 13537) @@ -45,6 +45,9 @@ (SF.net Plugin Bugs #1620694) and consumed much memory. (Kazutoshi Satoda) +- Improved rendering of complex text layout (like Indic text) in text + area. (SF.net bug #981012 - Kazutoshi Satoda) + }}} {{{ Docker Plugin features merged into jEdit Core - New actions: View - Docking - Load|Save docking layout (of current mode) Modified: jEdit/trunk/org/gjt/sp/jedit/syntax/Chunk.java =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/syntax/Chunk.java 2008-09-06 11:11:16 UTC (rev 13536) +++ jEdit/trunk/org/gjt/sp/jedit/syntax/Chunk.java 2008-09-06 13:17:40 UTC (rev 13537) @@ -308,8 +308,15 @@ str = new String(seg.array,seg.offset + offset,length); - gv = style.getFont().createGlyphVector( - fontRenderContext, str); + int textStart = seg.offset + offset; + int textLimit = textStart + length; + // FIXME: Need BiDi support. + int layoutFlags = Font.LAYOUT_LEFT_TO_RIGHT + | Font.LAYOUT_NO_START_CONTEXT + | Font.LAYOUT_NO_LIMIT_CONTEXT; + gv = style.getFont().layoutGlyphVector( + fontRenderContext, + seg.array, textStart, textLimit, layoutFlags); Rectangle2D logicalBounds = gv.getLogicalBounds(); width = (float)logicalBounds.getWidth(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |