41619 back port
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/os.c
index fcc8ba4..86392bc 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/os.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/os.c
@@ -323,6 +323,18 @@
}
#endif
+#ifndef NO_ATSUSetTransientFontMatching
+JNIEXPORT jint JNICALL OS_NATIVE(ATSUSetTransientFontMatching)
+ (JNIEnv *env, jclass that, jint arg0, jboolean arg1)
+{
+ jint rc;
+ NATIVE_ENTER(env, that, "ATSUSetTransientFontMatching\n")
+ rc = (jint)ATSUSetTransientFontMatching((ATSUTextLayout)arg0, arg1);
+ NATIVE_EXIT(env, that, "ATSUSetTransientFontMatching\n")
+ return rc;
+}
+#endif
+
#ifndef NO_ATSUTextDeleted
JNIEXPORT jint JNICALL OS_NATIVE(ATSUTextDeleted)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java
index 63446da..9f73208 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java
@@ -607,6 +607,7 @@
public static final native int ATSUSetLayoutControls(int iTextLayout, int iAttributeCount, int[] iTag, int[] iValueSize, int[] iValue);
public static final native int ATSUSetRunStyle(int iTextLayout, int iStyle, int iRunStart, int iRunLength);
public static final native int ATSUSetTextPointerLocation(int iTextLayout, int iText, int iTextOffset, int iTextLength, int iTextTotalLength);
+public static final native int ATSUSetTransientFontMatching(int iTextLayout, boolean iTransientFontMatching);
public static final native int ATSUTextInserted(int iTextLayout, int iInsertionLocation, int iInsertionLength);
public static final native int ATSUTextDeleted(int iTextLayout, int iInsertionLocation, int iInsertionLength);
public static final native int AddDataBrowserItems(int cHandle, int containerID, int numItems, int[] itemIDs, int preSortProperty);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/graphics/GC.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/graphics/GC.java
index a99b7d2..c7b7e4a 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/graphics/GC.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/graphics/GC.java
@@ -819,6 +819,7 @@
OS.ATSUSetRunStyle(data.layout, atsuiStyle, 0, length);
data.string = string;
data.stringPtr = ptr;
+ OS.ATSUSetTransientFontMatching(data.layout, true);
}
OS.ATSUDrawText(data.layout, 0, length, OS.X2Fix(x), OS.X2Fix(-(y + data.fontAscent)));
} else {
@@ -1871,6 +1872,7 @@
OS.ATSUSetRunStyle(data.layout, atsuiStyle, 0, length);
data.string = string;
data.stringPtr = ptr;
+ OS.ATSUSetTransientFontMatching(data.layout, true);
}
ATSTrapezoid trapezoid = new ATSTrapezoid();
OS.ATSUGetGlyphBounds(data.layout, 0, 0, 0, length, (short)OS.kATSUseDeviceOrigins, 1, trapezoid, null);