--- a/src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java Fri Oct 11 12:08:01 2019 +0530
@@ -61,6 +61,10 @@
public CGraphicsDevice(final int displayID) {
this.displayID = displayID;
config = CGLGraphicsConfig.getConfig(this, displayID, 0);
+ // initializes default device state, might be redundant step since we
+ // call "displayChanged()" later anyway, but we do not want to leave the
+ // device in an inconsistent state after construction
+ displayChanged();
}
/**
--- a/src/java.desktop/macosx/classes/sun/java2d/opengl/CGLSurfaceData.java Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/macosx/classes/sun/java2d/opengl/CGLSurfaceData.java Fri Oct 11 12:08:01 2019 +0530
@@ -25,7 +25,6 @@
package sun.java2d.opengl;
-import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
@@ -33,9 +32,7 @@
import java.awt.Rectangle;
import java.awt.image.ColorModel;
-import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
-
import sun.lwawt.macosx.CPlatformView;
public abstract class CGLSurfaceData extends OGLSurfaceData {
@@ -342,43 +339,4 @@
return offscreenImage;
}
}
-
- // Mac OS X specific APIs for JOGL/Java2D bridge...
-
- // given a surface create and attach GL context, then return it
- private static native long createCGLContextOnSurface(CGLSurfaceData sd,
- long sharedContext);
-
- public static long createOGLContextOnSurface(Graphics g, long sharedContext) {
- SurfaceData sd = ((SunGraphics2D) g).surfaceData;
- if ((sd instanceof CGLSurfaceData) == true) {
- CGLSurfaceData cglsd = (CGLSurfaceData) sd;
- return createCGLContextOnSurface(cglsd, sharedContext);
- } else {
- return 0L;
- }
- }
-
- // returns whether or not the makeCurrent operation succeeded
- static native boolean makeCGLContextCurrentOnSurface(CGLSurfaceData sd,
- long ctx);
-
- public static boolean makeOGLContextCurrentOnSurface(Graphics g, long ctx) {
- SurfaceData sd = ((SunGraphics2D) g).surfaceData;
- if ((ctx != 0L) && ((sd instanceof CGLSurfaceData) == true)) {
- CGLSurfaceData cglsd = (CGLSurfaceData) sd;
- return makeCGLContextCurrentOnSurface(cglsd, ctx);
- } else {
- return false;
- }
- }
-
- // additional cleanup
- private static native void destroyCGLContext(long ctx);
-
- public static void destroyOGLContext(long ctx) {
- if (ctx != 0L) {
- destroyCGLContext(ctx);
- }
- }
}
--- a/src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Fri Oct 11 12:08:01 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -444,6 +444,7 @@
fontHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
desktopProperties.put(SunToolkit.DESKTOPFONTHINTS, fontHints);
desktopProperties.put("awt.mouse.numButtons", BUTTONS);
+ desktopProperties.put("awt.multiClickInterval", getMultiClickTime());
// These DnD properties must be set, otherwise Swing ends up spewing NPEs
// all over the place. The values came straight off of MToolkit.
@@ -538,6 +539,11 @@
return BUTTONS;
}
+ /**
+ * Returns the double-click time interval in ms.
+ */
+ private static native int getMultiClickTime();
+
@Override
public boolean isTraySupported() {
return true;
--- a/src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.m Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.m Fri Oct 11 12:08:01 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -831,3 +831,19 @@
}
return JNI_FALSE;
}
+
+/*
+ * Class: sun_lwawt_macosx_LWCToolkit
+ * Method: getMultiClickTime
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL
+Java_sun_lwawt_macosx_LWCToolkit_getMultiClickTime(JNIEnv *env, jclass klass) {
+ __block jint multiClickTime = 0;
+ JNF_COCOA_ENTER(env);
+ [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
+ multiClickTime = (jint)([NSEvent doubleClickInterval] * 1000);
+ }];
+ JNF_COCOA_EXIT(env);
+ return multiClickTime;
+}
--- a/src/java.desktop/share/classes/java/awt/doc-files/AWTThreadIssues.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/doc-files/AWTThreadIssues.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>AWT Threading Issues</title>
</head>
<!--
- Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>AWT Threading Issues</h1>
<a id="ListenersThreads"></a>
@@ -192,6 +193,7 @@
<cite>The Java™ Virtual Machine Specification</cite>
guarantees
that the JVM doesn't exit until this thread terminates.
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/java/awt/doc-files/DesktopProperties.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/doc-files/DesktopProperties.html Fri Oct 11 12:08:01 2019 +0530
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>AWT Desktop Properties</h1>
The following refers to standard AWT desktop properties that
@@ -277,6 +278,7 @@
This property should be used when there is no need in listening mouse events fired as a result of
activity with extra mouse button.
By default this property is set to {@code true}.
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/java/awt/doc-files/FocusSpec.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/doc-files/FocusSpec.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>The AWT Focus Subsystem</title>
</head>
<!--
- Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+ <div class="contentContainer">
<h1>The AWT Focus Subsystem</h1>
<p>
@@ -1362,6 +1363,7 @@
change requests in all cases. Previously, requests were granted
for heavyweights, but denied for lightweights.
</ol>
+ </div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/java/awt/doc-files/Modality.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/doc-files/Modality.html Fri Oct 11 12:08:01 2019 +0530
@@ -35,6 +35,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>The AWT Modality</h1>
<p>
@@ -440,5 +441,6 @@
<img src="modal-example4.gif" alt="Example 4">
</p>
<br style="clear:both;">
+</div>
</main>
</body></html>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>BMP Metadata Format Specification</title>
</head>
<!--
-Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>BMP Metadata Format Specification</h1>
The XML schema for the native image metadata format is as follows:
@@ -161,5 +162,6 @@
</pre>
@since 1.5
+</div>
</main>
</body>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html Fri Oct 11 12:08:01 2019 +0530
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>GIF Metadata Format Specification</h1>
<a id="gif_stream_metadata_format"></a>
<h2>GIF Stream Metadata Format Specification</h2>
@@ -462,6 +463,7 @@
</tr>
</tbody>
</table>
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>JPEG Metadata Format Specification and Usage Notes</title>
</head>
<!--
-Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>JPEG Metadata Format Specification and Usage Notes</h1>
<p>
@@ -1159,6 +1160,7 @@
<!-- All elements are as defined above for image metadata -->
]>
</pre>
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/png_metadata.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/png_metadata.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>PNG Metadata Format Specification</title>
</head>
<!--
-Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>PNG Metadata Format Specification</h1>
<p>
@@ -561,6 +562,7 @@
<!-- Data type: String -->
]>
</pre>
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>Standard Metadata Format Specification</title>
</head>
<!--
-Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>Standard (Plug-in Neutral) Metadata Format Specification</h1>
<p> The plug-in neutral "javax_imageio_1.0" format consists
@@ -394,6 +395,7 @@
<!-- Data type: Integer -->
]>
</pre>
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/tiff_metadata.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/tiff_metadata.html Fri Oct 11 12:08:01 2019 +0530
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>TIFF Metadata Format Specification and Usage Notes</h1>
<a href="#Reading">Reading Images</a>
@@ -1235,6 +1236,7 @@
</pre>
@since 9
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>WBMP Metadata Format Specification</title>
</head>
<!--
-Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>WBMP Metadata Format Specification</h1>
The XML schema for the native image metadata format is as follows:
@@ -63,5 +64,6 @@
</pre>
@since 1.5
+</div>
</main>
</body>
--- a/src/java.desktop/share/classes/javax/swing/plaf/multi/doc-files/multi_tsc.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/plaf/multi/doc-files/multi_tsc.html Fri Oct 11 12:08:01 2019 +0530
@@ -5,7 +5,7 @@
<title>Using the Multiplexing Look and Feel</title>
</head>
<!--
- Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>Using the Multiplexing Look and Feel</h1>
<blockquote>
@@ -495,6 +496,7 @@
of auxiliary look and feels will most likely have developed and
tested against our Multiplexing look and feel.
</p>
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html Fri Oct 11 12:08:01 2019 +0530
@@ -31,6 +31,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>Colors Used in Nimbus Look and Feel</h1>
<h2 id="primaryColors">Primary Colors</h2>
<table>
@@ -236,6 +237,7 @@
</tr>
</tbody>
</table>
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html Fri Oct 11 12:08:01 2019 +0530
@@ -32,6 +32,7 @@
<body>
<main role="main">
+<div class="contentContainer">
<h1>Component Specific Properties</h1>
<p> The look, and to some degree the feel of Synth
can be customized by way of component specific properties.
@@ -1345,6 +1346,7 @@
<p><code>Prefix</code> is one of: EditorPane, FormattedTextField,
PasswordField, TextArea, TextField or TextPane.<br>
</p>
+</div>
</main>
</body>
</html>
--- a/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html Fri Oct 11 12:08:01 2019 +0530
@@ -46,6 +46,7 @@
<body>
<main role="main">
+ <div class="contentContainer">
<h1><a id="file">File Format</a></h1>
<p>
Synth's file format (<a href="synth.dtd">dtd</a>)
@@ -1030,6 +1031,7 @@
</synth>
</pre>
</div>
+ </div>
</main>
</body>
</html>
--- a/src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java Fri Oct 11 12:08:01 2019 +0530
@@ -25,7 +25,6 @@
package sun.font;
-import java.awt.Font;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -45,11 +44,9 @@
import sun.awt.FontDescriptor;
import sun.awt.SunToolkit;
import sun.font.CompositeFontDescriptor;
-import sun.font.FontManager;
import sun.font.FontConfigManager.FontConfigInfo;
import sun.font.FontConfigManager.FcCompFont;
import sun.font.FontConfigManager.FontConfigFont;
-import sun.java2d.SunGraphicsEnvironment;
import sun.util.logging.PlatformLogger;
public class FcFontConfiguration extends FontConfiguration {
@@ -289,12 +286,10 @@
/**
* Gets the OS version string from a Linux release-specific file.
*/
- private String getVersionString(File f){
- try {
- Scanner sc = new Scanner(f);
+ private String getVersionString(File f) {
+ try (Scanner sc = new Scanner(f)) {
return sc.findInLine("(\\d)+((\\.)(\\d)+)*");
- }
- catch (Exception e){
+ } catch (Exception e) {
}
return null;
}
@@ -429,23 +424,26 @@
private void readFcInfo() {
File fcFile = getFcInfoFile();
if (!fcFile.exists()) {
+ if (FontUtilities.debugFonts()) {
+ warning("fontconfig info file " + fcFile.toString() + " does not exist");
+ }
return;
}
Properties props = new Properties();
- FcFontManager fm = (FcFontManager) fontManager;
- FontConfigManager fcm = fm.getFontConfigManager();
- try {
- FileInputStream fis = new FileInputStream(fcFile);
+ try (FileInputStream fis = new FileInputStream(fcFile)) {
props.load(fis);
- fis.close();
} catch (IOException e) {
if (FontUtilities.debugFonts()) {
- warning("IOException reading from "+fcFile.toString());
+ warning("IOException (" + e.getCause() + ") reading from " + fcFile.toString());
}
return;
}
String version = (String)props.get("version");
if (version == null || !version.equals(fileVersion)) {
+ if (FontUtilities.debugFonts()) {
+ warning("fontconfig info file version mismatch (found: " + version +
+ ", expected: " + fileVersion + ")");
+ }
return;
}
@@ -458,6 +456,9 @@
fcVersion = Integer.parseInt(fcVersionStr);
if (fcVersion != 0 &&
fcVersion != FontConfigManager.getFontConfigVersion()) {
+ if (FontUtilities.debugFonts()) {
+ warning("new, different fontconfig detected");
+ }
return;
}
} catch (Exception e) {
@@ -480,6 +481,9 @@
}
File dirFile = new File(dir);
if (dirFile.exists() && dirFile.lastModified() > lastModified) {
+ if (FontUtilities.debugFonts()) {
+ warning("out of date cache directories detected");
+ }
return;
}
cacheDirIndex++;
@@ -503,6 +507,9 @@
String lenStr = (String)props.get(key+".length");
int nfonts = Integer.parseInt(lenStr);
if (nfonts <= 0) {
+ if (FontUtilities.debugFonts()) {
+ warning("bad non-positive .length entry in fontconfig file " + fcFile.toString());
+ }
return; // bad file
}
fci[index].allFonts = new FontConfigFont[nfonts];
@@ -514,6 +521,9 @@
fkey = key+"."+f+".file";
String file = (String)props.get(fkey);
if (file == null) {
+ if (FontUtilities.debugFonts()) {
+ warning("missing file value for key " + fkey + " in fontconfig file " + fcFile.toString());
+ }
return; // bad file
}
fci[index].allFonts[f].fontFile = file;
@@ -528,6 +538,11 @@
warning(t.toString());
}
}
+
+ if (FontUtilities.debugFonts()) {
+ PlatformLogger logger = FontUtilities.getLogger();
+ logger.info("successfully parsed the fontconfig file at " + fcFile.toString());
+ }
}
private static void warning(String msg) {
--- a/src/java.desktop/unix/native/common/awt/X11Color.c Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/unix/native/common/awt/X11Color.c Fri Oct 11 12:08:01 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -336,19 +336,6 @@
return awt_color_match(r, g, b, awt_data);
}
-
-void
-awt_allocate_systemcolors(XColor *colorsPtr, int num_pixels, AwtGraphicsConfigDataPtr awtData) {
- int i;
- int r, g, b, pixel;
-
- for (i=0; i < num_pixels; i++) {
- r = colorsPtr[i].red >> 8;
- g = colorsPtr[i].green >> 8;
- b = colorsPtr[i].blue >> 8;
- pixel = alloc_col(awt_display, awtData->awt_cmap, r, g, b, -1, awtData);
- }
-}
#endif /* !HEADLESS */
void
@@ -1276,12 +1263,6 @@
extern jfieldID colorValueID;
#ifndef HEADLESS
-int awtJNI_GetColor(JNIEnv *env,jobject this)
-{
- /* REMIND: should not be defaultConfig. */
- return awtJNI_GetColorForVis (env, this, getDefaultConfig(DefaultScreen(awt_display)));
-}
-
int awtJNI_GetColorForVis (JNIEnv *env,jobject this, AwtGraphicsConfigDataPtr awt_data)
{
int col;
--- a/src/java.desktop/unix/native/common/awt/awt_Font.c Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/unix/native/common/awt/awt_Font.c Fri Oct 11 12:08:01 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,51 +23,10 @@
* questions.
*/
-#ifndef HEADLESS
-
-#include "awt_p.h"
-#include <string.h>
-#include "java_awt_Component.h"
#include "java_awt_Font.h"
-#include "java_awt_FontMetrics.h"
-#include "sun_awt_X11GraphicsEnvironment.h"
-
-#include "awt_Font.h"
-
-#include "java_awt_Dimension.h"
-#include "Disposer.h"
-#endif /* !HEADLESS */
-#include <jni.h>
-#ifndef HEADLESS
-#include <jni_util.h>
-
-#define defaultXLFD "-*-helvetica-*-*-*-*-12-*-*-*-*-*-iso8859-1"
-
-struct FontIDs fontIDs;
-struct PlatformFontIDs platformFontIDs;
+#include "sun_awt_FontDescriptor.h"
+#include "sun_awt_PlatformFont.h"
-static void pDataDisposeMethod(JNIEnv *env, jlong pData);
-
-/* #define FONT_DEBUG 2 */
-/* 1- print failures, 2- print all, 3- terminate on failure */
-#if FONT_DEBUG
-static XFontStruct *XLoadQueryFontX(Display *display, char *name)
-{
- XFontStruct *result = NULL;
- result = XLoadQueryFont(display, name);
-#if FONT_DEBUG < 2
- if (result == NULL)
-#endif
- fprintf(stderr, "XLoadQueryFont(\"%s\") -> 0x%x.\n", name, result);
-#if FONT_DEBUG >= 3
- if (result == NULL)
- exit(-1);
-#endif
- return result;
-}
-#define XLoadQueryFont XLoadQueryFontX
-#endif
-#endif /* !HEADLESS */
/*
* Class: java_awt_Font
@@ -79,28 +38,9 @@
to initialize the fieldIDs for fields that may be accessed from C */
JNIEXPORT void JNICALL
-Java_java_awt_Font_initIDs
- (JNIEnv *env, jclass cls)
-{
-#ifndef HEADLESS
- CHECK_NULL(fontIDs.pData = (*env)->GetFieldID(env, cls, "pData", "J"));
- CHECK_NULL(fontIDs.style = (*env)->GetFieldID(env, cls, "style", "I"));
- CHECK_NULL(fontIDs.size = (*env)->GetFieldID(env, cls, "size", "I"));
- CHECK_NULL(fontIDs.getPeer = (*env)->GetMethodID(env, cls, "getFontPeer",
- "()Ljava/awt/peer/FontPeer;"));
- CHECK_NULL(fontIDs.getFamily = (*env)->GetMethodID(env, cls, "getFamily_NoClientCode",
- "()Ljava/lang/String;"));
-#endif /* !HEADLESS */
+Java_java_awt_Font_initIDs(JNIEnv *env, jclass cls) {
}
-#ifndef HEADLESS
-/* fieldIDs for FontDescriptor fields that may be accessed from C */
-static struct FontDescriptorIDs {
- jfieldID nativeName;
- jfieldID charsetName;
-} fontDescriptorIDs;
-#endif /* !HEADLESS */
-
/*
* Class: sun_awt_FontDescriptor
* Method: initIDs
@@ -112,15 +52,7 @@
that may be accessed from C */
JNIEXPORT void JNICALL
-Java_sun_awt_FontDescriptor_initIDs
- (JNIEnv *env, jclass cls)
-{
-#ifndef HEADLESS
- CHECK_NULL(fontDescriptorIDs.nativeName =
- (*env)->GetFieldID(env, cls, "nativeName", "Ljava/lang/String;"));
- CHECK_NULL(fontDescriptorIDs.charsetName =
- (*env)->GetFieldID(env, cls, "charsetName", "Ljava/lang/String;"));
-#endif /* !HEADLESS */
+Java_sun_awt_FontDescriptor_initIDs(JNIEnv *env, jclass cls) {
}
/*
@@ -134,354 +66,5 @@
that may be accessed from C */
JNIEXPORT void JNICALL
-Java_sun_awt_PlatformFont_initIDs
- (JNIEnv *env, jclass cls)
-{
-#ifndef HEADLESS
- CHECK_NULL(platformFontIDs.componentFonts =
- (*env)->GetFieldID(env, cls, "componentFonts",
- "[Lsun/awt/FontDescriptor;"));
- CHECK_NULL(platformFontIDs.fontConfig =
- (*env)->GetFieldID(env,cls, "fontConfig",
- "Lsun/awt/FontConfiguration;"));
- CHECK_NULL(platformFontIDs.makeConvertedMultiFontString =
- (*env)->GetMethodID(env, cls, "makeConvertedMultiFontString",
- "(Ljava/lang/String;)[Ljava/lang/Object;"));
- CHECK_NULL(platformFontIDs.makeConvertedMultiFontChars =
- (*env)->GetMethodID(env, cls, "makeConvertedMultiFontChars",
- "([CII)[Ljava/lang/Object;"));
-#endif /* !HEADLESS */
+Java_sun_awt_PlatformFont_initIDs(JNIEnv *env, jclass cls) {
}
-
-#ifndef HEADLESS
-XFontStruct *
-loadFont(Display * display, char *name, int32_t pointSize)
-{
- XFontStruct *f = NULL;
-
- /* try the exact xlfd name in font configuration file */
- f = XLoadQueryFont(display, name);
- if (f != NULL) {
- return f;
- }
-
- /*
- * try nearly font
- *
- * 1. specify FAMILY_NAME, WEIGHT_NAME, SLANT, POINT_SIZE,
- * CHARSET_REGISTRY and CHARSET_ENCODING.
- * 2. change POINT_SIZE to PIXEL_SIZE
- * 3. change FAMILY_NAME to *
- * 4. specify only PIXEL_SIZE and CHARSET_REGISTRY/ENCODING
- * 5. change PIXEL_SIZE +1/-1/+2/-2...+4/-4
- * 6. default font pattern
- */
- {
- /*
- * This code assumes the name contains exactly 14 '-' delimiter.
- * If not use default pattern.
- */
- int32_t i, length, pixelSize;
- Boolean useDefault = FALSE;
-
- char buffer[BUFSIZ], buffer2[BUFSIZ];
- char *family = NULL, *style = NULL, *slant = NULL, *encoding = NULL;
- char *start = NULL, *end = NULL;
-
- if (strlen(name) > BUFSIZ - 1) {
- useDefault = TRUE;
- } else {
- strcpy(buffer, name);
- }
-
-#define NEXT_HYPHEN\
- start = end + 1;\
- end = strchr(start, '-');\
- if (end == NULL) {\
- useDefault = TRUE;\
- break;\
- }\
- *end = '\0'
-
- do {
- end = buffer;
-
- /* skip FOUNDRY */
- NEXT_HYPHEN;
-
- /* set FAMILY_NAME */
- NEXT_HYPHEN;
- family = start;
-
- /* set STYLE_NAME */
- NEXT_HYPHEN;
- style = start;
-
- /* set SLANT */
- NEXT_HYPHEN;
- slant = start;
-
- /* skip SETWIDTH_NAME, ADD_STYLE_NAME, PIXEL_SIZE
- POINT_SIZE, RESOLUTION_X, RESOLUTION_Y, SPACING
- and AVERAGE_WIDTH */
- NEXT_HYPHEN;
- NEXT_HYPHEN;
- NEXT_HYPHEN;
- NEXT_HYPHEN;
- NEXT_HYPHEN;
- NEXT_HYPHEN;
- NEXT_HYPHEN;
- NEXT_HYPHEN;
-
- /* set CHARSET_REGISTRY and CHARSET_ENCODING */
- encoding = end + 1;
- }
- while (0);
-
-#define TRY_LOAD\
- f = XLoadQueryFont(display, buffer2);\
- if (f != NULL) {\
- strcpy(name, buffer2);\
- return f;\
- }
-
- if (!useDefault) {
- char *altstyle = NULL;
-
- /* Regular is the style for TrueType fonts -- Type1, F3 use roman */
- if (strcmp(style, "regular") == 0) {
- altstyle = "roman";
- }
-#if defined(__linux__) || defined(MACOSX)
- if (!strcmp(family, "lucidasans")) {
- family = "lucida";
- }
-#endif
- /* try 1. */
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-%s-%s-%s-*-*-*-%d-*-*-*-*-%s",
- family, style, slant, pointSize, encoding);
- TRY_LOAD;
-
- if (altstyle != NULL) {
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-%s-%s-%s-*-*-*-%d-*-*-*-*-%s",
- family, altstyle, slant, pointSize, encoding);
- TRY_LOAD;
- }
-
- /* search bitmap font */
- pixelSize = pointSize / 10;
-
- /* try 2. */
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
- family, style, slant, pixelSize, encoding);
- TRY_LOAD;
-
- if (altstyle != NULL) {
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
- family, altstyle, slant, pixelSize, encoding);
- TRY_LOAD;
- }
-
- /* try 3 */
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-*-%s-%s-*-*-%d-*-*-*-*-*-%s",
- style, slant, pixelSize, encoding);
- TRY_LOAD;
- if (altstyle != NULL) {
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-*-%s-%s-*-*-%d-*-*-*-*-*-%s",
- altstyle, slant, pixelSize, encoding);
- TRY_LOAD;
- }
-
- /* try 4 */
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-*-*-%s-*-*-%d-*-*-*-*-*-%s",
- slant, pixelSize, encoding);
-
- TRY_LOAD;
-
- /* try 5. */
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-*-*-*-*-*-%d-*-*-*-*-*-%s",
- pixelSize, encoding);
- TRY_LOAD;
-
- /* try 6. */
- for (i = 1; i < 4; i++) {
- if (pixelSize < i)
- break;
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
- family, style, slant, pixelSize + i, encoding);
- TRY_LOAD;
-
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
- family, style, slant, pixelSize - i, encoding);
- TRY_LOAD;
-
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-*-*-*-*-*-%d-*-*-*-*-*-%s",
- pixelSize + i, encoding);
- TRY_LOAD;
-
- jio_snprintf(buffer2, sizeof(buffer2),
- "-*-*-*-*-*-*-%d-*-*-*-*-*-%s",
- pixelSize - i, encoding);
- TRY_LOAD;
- }
- }
- }
-
- strcpy(name, defaultXLFD);
- return XLoadQueryFont(display, defaultXLFD);
-}
-
-/*
- * Hardwired list of mappings for generic font names "Helvetica",
- * "TimesRoman", "Courier", "Dialog", and "DialogInput".
- */
-static char *defaultfontname = "fixed";
-static char *defaultfoundry = "misc";
-static char *anyfoundry = "*";
-static char *anystyle = "*-*";
-static char *isolatin1 = "iso8859-1";
-
-static char *
-Style(int32_t s)
-{
- switch (s) {
- case java_awt_Font_ITALIC:
- return "medium-i";
- case java_awt_Font_BOLD:
- return "bold-r";
- case java_awt_Font_BOLD + java_awt_Font_ITALIC:
- return "bold-i";
- case java_awt_Font_PLAIN:
- default:
- return "medium-r";
- }
-}
-
-static int32_t
-awtJNI_FontName(JNIEnv * env, jstring name, char **foundry, char **facename, char **encoding)
-{
- char *cname = NULL;
-
- if (JNU_IsNull(env, name)) {
- return 0;
- }
- cname = (char *) JNU_GetStringPlatformChars(env, name, NULL);
- if (cname == NULL) {
- (*env)->ExceptionClear(env);
- JNU_ThrowOutOfMemoryError(env, "Could not create font name");
- return 0;
- }
-
- /* additional default font names */
- if (strcmp(cname, "serif") == 0) {
- *foundry = "adobe";
- *facename = "times";
- *encoding = isolatin1;
- } else if (strcmp(cname, "sansserif") == 0) {
- *foundry = "adobe";
- *facename = "helvetica";
- *encoding = isolatin1;
- } else if (strcmp(cname, "monospaced") == 0) {
- *foundry = "adobe";
- *facename = "courier";
- *encoding = isolatin1;
- } else if (strcmp(cname, "helvetica") == 0) {
- *foundry = "adobe";
- *facename = "helvetica";
- *encoding = isolatin1;
- } else if (strcmp(cname, "timesroman") == 0) {
- *foundry = "adobe";
- *facename = "times";
- *encoding = isolatin1;
- } else if (strcmp(cname, "courier") == 0) {
- *foundry = "adobe";
- *facename = "courier";
- *encoding = isolatin1;
- } else if (strcmp(cname, "dialog") == 0) {
- *foundry = "b&h";
- *facename = "lucida";
- *encoding = isolatin1;
- } else if (strcmp(cname, "dialoginput") == 0) {
- *foundry = "b&h";
- *facename = "lucidatypewriter";
- *encoding = isolatin1;
- } else if (strcmp(cname, "zapfdingbats") == 0) {
- *foundry = "itc";
- *facename = "zapfdingbats";
- *encoding = "*-*";
- } else {
-#ifdef DEBUG
- jio_fprintf(stderr, "Unknown font: %s\n", cname);
-#endif
- *foundry = defaultfoundry;
- *facename = defaultfontname;
- *encoding = isolatin1;
- }
-
- if (cname != NULL)
- JNU_ReleaseStringPlatformChars(env, name, (const char *) cname);
-
- return 1;
-}
-
-/*
- * Registered with the 2D disposer to be called after the Font is GC'd.
- */
-static void pDataDisposeMethod(JNIEnv *env, jlong pData)
-{
- struct FontData *fdata = NULL;
- int32_t i = 0;
- Display *display = XDISPLAY;
-
- AWT_LOCK();
- fdata = (struct FontData *)pData;
-
- if (fdata == NULL) {
- AWT_UNLOCK();
- return;
- }
-
- if (fdata->xfs != NULL) {
- XFreeFontSet(display, fdata->xfs);
- }
-
- /* AWT fonts are always "multifonts" and probably have been in
- * all post 1.0 releases, so this test for multi fonts is
- * probably not needed, and the singleton xfont is probably never used.
- */
- if (fdata->charset_num > 0) {
- for (i = 0; i < fdata->charset_num; i++) {
- free((void *)fdata->flist[i].xlfd);
- JNU_ReleaseStringPlatformChars(env, NULL,
- fdata->flist[i].charset_name);
- if (fdata->flist[i].load) {
- XFreeFont(display, fdata->flist[i].xfont);
- }
- }
-
- free((void *)fdata->flist);
-
- /* Don't free fdata->xfont because it is equal to fdata->flist[i].xfont
- for some 'i' */
- } else {
- if (fdata->xfont != NULL) {
- XFreeFont(display, fdata->xfont);
- }
- }
-
- free((void *)fdata);
-
- AWT_UNLOCK();
-}
-#endif /* !HEADLESS */
--- a/src/java.desktop/unix/native/common/awt/awt_Font.h Fri Oct 11 01:11:28 2019 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <jni_util.h>
-
-/* fieldIDs for Font fields that may be accessed from C */
-struct FontIDs {
- jfieldID pData;
- jfieldID style;
- jfieldID size;
- jmethodID getPeer;
- jmethodID getFamily;
-};
-
-/* fieldIDs for PlatformFont fields that may be accessed from C */
-struct PlatformFontIDs {
- jfieldID componentFonts;
- jfieldID fontConfig;
- jmethodID makeConvertedMultiFontString;
- jmethodID makeConvertedMultiFontChars;
-};
--- a/src/java.desktop/unix/native/common/awt/awt_p.h Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/unix/native/common/awt/awt_p.h Fri Oct 11 12:08:01 2019 +0530
@@ -30,11 +30,6 @@
#ifndef _AWT_P_H_
#define _AWT_P_H_
-/* turn on to do event filtering */
-#define NEW_EVENT_MODEL
-/* turn on to only filter keyboard events */
-#define KEYBOARD_ONLY_EVENTS
-
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
@@ -58,9 +53,6 @@
#endif
#endif /* !HEADLESS */
-#define RepaintPending_NONE 0
-#define RepaintPending_REPAINT (1 << 0)
-#define RepaintPending_EXPOSE (1 << 1)
#define LOOKUPSIZE 32
#ifndef HEADLESS
@@ -101,24 +93,6 @@
typedef AwtScreenData* AwtScreenDataPtr;
-#define W_GRAVITY_INITIALIZED 1
-#define W_IS_EMBEDDED 2
-
-typedef struct awtFontList {
- char *xlfd;
- int index_length;
- int load;
- char *charset_name;
- XFontStruct *xfont;
-} awtFontList;
-
-struct FontData {
- int charset_num;
- awtFontList *flist;
- XFontSet xfs; /* for TextField & TextArea */
- XFontStruct *xfont; /* Latin1 font */
-};
-
extern AwtGraphicsConfigDataPtr getDefaultConfig(int screen);
extern AwtScreenDataPtr getScreenData(int screen);
#endif /* !HEADLESS */
@@ -127,13 +101,10 @@
#define ZALLOC(T) ((struct T *)calloc(1, sizeof(struct T)))
#ifndef HEADLESS
-#define XDISPLAY awt_display;
extern int awt_allocate_colors(AwtGraphicsConfigDataPtr);
-extern void awt_allocate_systemcolors(XColor *, int, AwtGraphicsConfigDataPtr);
extern void awt_allocate_systemrgbcolors(jint *, int, AwtGraphicsConfigDataPtr);
-extern int awtJNI_GetColor(JNIEnv *, jobject);
extern int awtJNI_GetColorForVis (JNIEnv *, jobject, AwtGraphicsConfigDataPtr);
extern jobject awtJNI_GetColorModel(JNIEnv *, AwtGraphicsConfigDataPtr);
extern void awtJNI_CreateColorData (JNIEnv *, AwtGraphicsConfigDataPtr, int lock);
--- a/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c Fri Oct 11 01:11:28 2019 +0200
+++ b/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c Fri Oct 11 12:08:01 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@
#include "awt_p.h"
#include "awt_Component.h"
#include "awt_MenuComponent.h"
-#include "awt_Font.h"
#include "awt_util.h"
#include "sun_awt_X11_XToolkit.h"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/awt/Toolkit/GetMulticlickTime/GetMulticlickTime.java Fri Oct 11 12:08:01 2019 +0530
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.awt.Toolkit;
+
+/**
+ * @test
+ * @key headful
+ * @bug 4559047 7124404
+ * @summary Solaris/Linux/macOS do not set awt.multiClickInterval desktop property
+ */
+public final class GetMulticlickTime {
+
+ public static void main(final String[] args) {
+ Integer time = (Integer) Toolkit.getDefaultToolkit()
+ .getDesktopProperty("awt.multiClickInterval");
+ if (time == null || time <= 0 || time > 30_000) {
+ throw new RuntimeException("awt.multiClickInterval:" + time);
+ }
+ }
+}
--- a/test/jdk/java/awt/print/PrinterJob/CustomFont/CustomFont.java Fri Oct 11 01:11:28 2019 +0200
+++ b/test/jdk/java/awt/print/PrinterJob/CustomFont/CustomFont.java Fri Oct 11 12:08:01 2019 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
@test
- @bug 4386025
+ @bug 4386025 8231243
@summary fonts not in win32 font directory print incorrectly.
@author prr: area=PrinterJob
@run main/manual CustomFont
@@ -83,12 +83,13 @@
Font customFont;
public CustomFont() {
try {
- FileInputStream fin = new FileInputStream("A.ttf");
+ String dir = System.getProperty("test.src", ".");
+ String fileName = dir + File.separator + "A.ttf";
+ FileInputStream fin = new FileInputStream(fileName);
Font cf = Font.createFont(Font.TRUETYPE_FONT, fin);
customFont = cf.deriveFont(Font.PLAIN, 14);
} catch (Exception ioe) {
- System.err.println(ioe.getMessage());
- customFont = new Font("serif", Font.PLAIN, 14);
+ throw new RuntimeException(ioe);
}
}
@@ -99,7 +100,7 @@
g2D.setColor(Color.black);
g2D.setFont(customFont);
- String str = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
+ String str = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
g.drawString(str, 100, 100);
return Printable.PAGE_EXISTS;