summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Heidrich <fheidric>2008-05-29 21:39:51 +0000
committerFelipe Heidrich <fheidric>2008-05-29 21:39:51 +0000
commitfb1174825d9e94f0ff6e99ea173bb054681e393d (patch)
tree207214e270c2db6a9d7f86b7b537b9f8d472813c
parent8b0ef9c2e7883e6618617a0ab4b18e2a0e634275 (diff)
downloadeclipse.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.java28
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.