diff options
author | Felipe Heidrich <fheidric> | 2008-05-29 21:39:51 +0000 |
---|---|---|
committer | Felipe Heidrich <fheidric> | 2008-05-29 21:39:51 +0000 |
commit | fb1174825d9e94f0ff6e99ea173bb054681e393d (patch) | |
tree | 207214e270c2db6a9d7f86b7b537b9f8d472813c | |
parent | 8b0ef9c2e7883e6618617a0ab4b18e2a0e634275 (diff) | |
download | eclipse.platform.swt-fb1174825d9e94f0ff6e99ea173bb054681e393d.tar.gz eclipse.platform.swt-fb1174825d9e94f0ff6e99ea173bb054681e393d.tar.xz eclipse.platform.swt-fb1174825d9e94f0ff6e99ea173bb054681e393d.zip |
Bug 234732 - WRAP break font fallback , DBCS does not show
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java index f235b0a85a..d0b12027cb 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java @@ -347,12 +347,14 @@ void computeRuns (GC gc) { newRun.start = run.start + start; newRun.length = run.length - start; newRun.style = run.style; - newRun.analysis = run.analysis; + newRun.analysis = cloneScriptAnalysis(run.analysis); run.free(); run.length = start; OS.SelectObject(srcHdc, getItemFont(run)); + run.analysis.fNoGlyphIndex = false; shape (srcHdc, run); OS.SelectObject(srcHdc, getItemFont(newRun)); + newRun.analysis.fNoGlyphIndex = false; shape (srcHdc, newRun); StyleItem[] newAllRuns = new StyleItem[allRuns.length + 1]; System.arraycopy(allRuns, 0, newAllRuns, 0, i + 1); @@ -472,6 +474,30 @@ void destroy () { OS.OleUninitialize(); } +SCRIPT_ANALYSIS cloneScriptAnalysis (SCRIPT_ANALYSIS src) { + SCRIPT_ANALYSIS dst = new SCRIPT_ANALYSIS(); + dst.eScript = src.eScript; + dst.fRTL = src.fRTL; + dst.fLayoutRTL = src.fLayoutRTL; + dst.fLinkBefore = src.fLinkBefore; + dst.fLinkAfter = src.fLinkAfter; + dst.fLogicalOrder = src.fLogicalOrder; + dst.fNoGlyphIndex = src.fNoGlyphIndex; + dst.s = new SCRIPT_STATE(); + dst.s.uBidiLevel = src.s.uBidiLevel; + dst.s.fOverrideDirection = src.s.fOverrideDirection; + dst.s.fInhibitSymSwap = src.s.fInhibitSymSwap; + dst.s.fCharShape = src.s.fCharShape; + dst.s.fDigitSubstitute = src.s.fDigitSubstitute; + dst.s.fInhibitLigate = src.s.fInhibitLigate; + dst.s.fDisplayZWG = src.s.fDisplayZWG; + dst.s.fArabicNumContext = src.s.fArabicNumContext; + dst.s.fGcpClusters = src.s.fGcpClusters; + dst.s.fReserved = src.s.fReserved; + dst.s.fEngineReserved = src.s.fEngineReserved; + return dst; +} + /** * Draws the receiver's text using the specified GC at the specified * point. |