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);