mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 04:24:49 +02:00
Merge
This commit is contained in:
commit
aa8a574989
5 changed files with 65 additions and 19 deletions
|
@ -339,6 +339,8 @@ public class PSPrinterJob extends RasterPrinterJob {
|
||||||
*/
|
*/
|
||||||
private static Properties mFontProps = null;
|
private static Properties mFontProps = null;
|
||||||
|
|
||||||
|
private static boolean isMac;
|
||||||
|
|
||||||
/* Class static initialiser block */
|
/* Class static initialiser block */
|
||||||
static {
|
static {
|
||||||
//enable priviledges so initProps can access system properties,
|
//enable priviledges so initProps can access system properties,
|
||||||
|
@ -347,6 +349,8 @@ public class PSPrinterJob extends RasterPrinterJob {
|
||||||
new java.security.PrivilegedAction() {
|
new java.security.PrivilegedAction() {
|
||||||
public Object run() {
|
public Object run() {
|
||||||
mFontProps = initProps();
|
mFontProps = initProps();
|
||||||
|
String osName = System.getProperty("os.name");
|
||||||
|
isMac = osName.startsWith("Mac");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -473,6 +477,12 @@ public class PSPrinterJob extends RasterPrinterJob {
|
||||||
PrintService pServ = getPrintService();
|
PrintService pServ = getPrintService();
|
||||||
if (pServ != null) {
|
if (pServ != null) {
|
||||||
mDestination = pServ.getName();
|
mDestination = pServ.getName();
|
||||||
|
if (isMac) {
|
||||||
|
PrintServiceAttributeSet psaSet = pServ.getAttributes() ;
|
||||||
|
if (psaSet != null) {
|
||||||
|
mDestination = psaSet.get(PrinterName.class).toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -771,6 +781,12 @@ public class PSPrinterJob extends RasterPrinterJob {
|
||||||
PrintService pServ = getPrintService();
|
PrintService pServ = getPrintService();
|
||||||
if (pServ != null) {
|
if (pServ != null) {
|
||||||
mDestination = pServ.getName();
|
mDestination = pServ.getName();
|
||||||
|
if (isMac) {
|
||||||
|
PrintServiceAttributeSet psaSet = pServ.getAttributes();
|
||||||
|
if (psaSet != null) {
|
||||||
|
mDestination = psaSet.get(PrinterName.class).toString() ;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
PrinterSpooler spooler = new PrinterSpooler();
|
PrinterSpooler spooler = new PrinterSpooler();
|
||||||
java.security.AccessController.doPrivileged(spooler);
|
java.security.AccessController.doPrivileged(spooler);
|
||||||
|
|
|
@ -71,13 +71,17 @@ JNIEXPORT jlong JNICALL Java_sun_font_NullFontScaler_getGlyphImage
|
||||||
void initLCDGammaTables();
|
void initLCDGammaTables();
|
||||||
|
|
||||||
/* placeholder for extern variable */
|
/* placeholder for extern variable */
|
||||||
|
static int initialisedFontIDs = 0;
|
||||||
FontManagerNativeIDs sunFontIDs;
|
FontManagerNativeIDs sunFontIDs;
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
static void initFontIDs(JNIEnv *env) {
|
||||||
Java_sun_font_SunFontManager_initIDs
|
|
||||||
(JNIEnv *env, jclass cls) {
|
|
||||||
|
|
||||||
jclass tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
|
jclass tmpClass;
|
||||||
|
|
||||||
|
if (initialisedFontIDs) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
|
||||||
sunFontIDs.ttReadBlockMID =
|
sunFontIDs.ttReadBlockMID =
|
||||||
(*env)->GetMethodID(env, tmpClass, "readBlock",
|
(*env)->GetMethodID(env, tmpClass, "readBlock",
|
||||||
"(Ljava/nio/ByteBuffer;II)I");
|
"(Ljava/nio/ByteBuffer;II)I");
|
||||||
|
@ -173,9 +177,20 @@ Java_sun_font_SunFontManager_initIDs
|
||||||
(*env)->GetFieldID(env, tmpClass, "lcdSubPixPos", "Z");
|
(*env)->GetFieldID(env, tmpClass, "lcdSubPixPos", "Z");
|
||||||
|
|
||||||
initLCDGammaTables();
|
initLCDGammaTables();
|
||||||
|
|
||||||
|
initialisedFontIDs = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT FontManagerNativeIDs getSunFontIDs() {
|
JNIEXPORT void JNICALL
|
||||||
|
Java_sun_font_SunFontManager_initIDs
|
||||||
|
(JNIEnv *env, jclass cls) {
|
||||||
|
|
||||||
|
initFontIDs(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT FontManagerNativeIDs getSunFontIDs(JNIEnv *env) {
|
||||||
|
|
||||||
|
initFontIDs(env);
|
||||||
return sunFontIDs;
|
return sunFontIDs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ typedef struct FontManagerNativeIDs {
|
||||||
/* Note: we share variable in the context of fontmanager lib
|
/* Note: we share variable in the context of fontmanager lib
|
||||||
but we need access method to use it from separate rasterizer lib */
|
but we need access method to use it from separate rasterizer lib */
|
||||||
extern FontManagerNativeIDs sunFontIDs;
|
extern FontManagerNativeIDs sunFontIDs;
|
||||||
JNIEXPORT FontManagerNativeIDs getSunFontIDs();
|
JNIEXPORT FontManagerNativeIDs getSunFontIDs(JNIEnv* env);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,7 +245,7 @@ public class UnixPrintServiceLookup extends PrintServiceLookup
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ((defaultPrintService != null)
|
if ((defaultPrintService != null)
|
||||||
&& printers[p].equals(defaultPrintService.getName())) {
|
&& printers[p].equals(getPrinterDestName(defaultPrintService))) {
|
||||||
printerList.add(defaultPrintService);
|
printerList.add(defaultPrintService);
|
||||||
defaultIndex = printerList.size() - 1;
|
defaultIndex = printerList.size() - 1;
|
||||||
} else {
|
} else {
|
||||||
|
@ -270,13 +270,14 @@ public class UnixPrintServiceLookup extends PrintServiceLookup
|
||||||
} else {
|
} else {
|
||||||
int j;
|
int j;
|
||||||
for (j=0; j<printServices.length; j++) {
|
for (j=0; j<printServices.length; j++) {
|
||||||
if ((printServices[j] != null) &&
|
if (printServices[j] != null) {
|
||||||
(printers[p].equals(printServices[j].getName()))) {
|
if (printers[p].equals(getPrinterDestName(printServices[j]))) {
|
||||||
printerList.add(printServices[j]);
|
printerList.add(printServices[j]);
|
||||||
printServices[j] = null;
|
printServices[j] = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (j == printServices.length) { // not found?
|
if (j == printServices.length) { // not found?
|
||||||
if (CUPSPrinter.isCupsRunning()) {
|
if (CUPSPrinter.isCupsRunning()) {
|
||||||
|
@ -360,6 +361,17 @@ public class UnixPrintServiceLookup extends PrintServiceLookup
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gets the printer name compatible with the list of printers returned by
|
||||||
|
* the system when we query default or all the available printers.
|
||||||
|
*/
|
||||||
|
private String getPrinterDestName(PrintService ps) {
|
||||||
|
if (isMac()) {
|
||||||
|
return ((IPPPrintService)ps).getDest();
|
||||||
|
}
|
||||||
|
return ps.getName();
|
||||||
|
}
|
||||||
|
|
||||||
/* On a network with many (hundreds) of network printers, it
|
/* On a network with many (hundreds) of network printers, it
|
||||||
* can save several seconds if you know all you want is a particular
|
* can save several seconds if you know all you want is a particular
|
||||||
* printer, to ask for that printer rather than retrieving all printers.
|
* printer, to ask for that printer rather than retrieving all printers.
|
||||||
|
@ -369,10 +381,12 @@ public class UnixPrintServiceLookup extends PrintServiceLookup
|
||||||
if (name == null || name.equals("") || !checkPrinterName(name)) {
|
if (name == null || name.equals("") || !checkPrinterName(name)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
/* check is all printers are already available */
|
/* check if all printers are already available */
|
||||||
if (printServices != null) {
|
if (printServices != null) {
|
||||||
for (PrintService printService : printServices) {
|
for (PrintService printService : printServices) {
|
||||||
if (printService.getName().equals(name)) {
|
PrinterName printerName =
|
||||||
|
(PrinterName)printService.getAttribute(PrinterName.class);
|
||||||
|
if (printerName.getValue().equals(name)) {
|
||||||
return printService;
|
return printService;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -567,7 +581,7 @@ public class UnixPrintServiceLookup extends PrintServiceLookup
|
||||||
defaultPrintService = null;
|
defaultPrintService = null;
|
||||||
if (printServices != null) {
|
if (printServices != null) {
|
||||||
for (int j=0; j<printServices.length; j++) {
|
for (int j=0; j<printServices.length; j++) {
|
||||||
if (defaultPrinter.equals(printServices[j].getName())) {
|
if (defaultPrinter.equals(getPrinterDestName(printServices[j]))) {
|
||||||
defaultPrintService = printServices[j];
|
defaultPrintService = printServices[j];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,14 +67,15 @@ Java_sun_java2d_opengl_WGLSurfaceData_initOps(JNIEnv *env, jobject wglsd,
|
||||||
|
|
||||||
J2dTraceLn(J2D_TRACE_INFO, "WGLSurfaceData_initOps");
|
J2dTraceLn(J2D_TRACE_INFO, "WGLSurfaceData_initOps");
|
||||||
|
|
||||||
if (oglsdo == NULL) {
|
|
||||||
JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (wglsdo == NULL) {
|
if (wglsdo == NULL) {
|
||||||
JNU_ThrowOutOfMemoryError(env, "creating native wgl ops");
|
JNU_ThrowOutOfMemoryError(env, "creating native wgl ops");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (oglsdo == NULL) {
|
||||||
|
free(wglsdo);
|
||||||
|
JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
oglsdo->privOps = wglsdo;
|
oglsdo->privOps = wglsdo;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue