diff --git a/app/src/processing/app/ui/Toolkit.java b/app/src/processing/app/ui/Toolkit.java
index e30b9f98a5..8bc4d4b9c3 100644
--- a/app/src/processing/app/ui/Toolkit.java
+++ b/app/src/processing/app/ui/Toolkit.java
@@ -975,10 +975,14 @@ static public Font getSansFont(int size, int style) {
* the Preferences window, and can be used by HTMLEditorKit for WebFrame).
*/
static private Font createFont(String filename, int size) throws IOException, FontFormatException {
+ boolean registerFont = false;
+
// Can't use Base.getJavaHome(), because if we're not using our local JRE,
// we likely have bigger problems with how things are running.
File fontFile = new File(System.getProperty("java.home"), "lib/fonts/" + filename);
if (!fontFile.exists()) {
+ // any of the fallbacks below is a custom location, so try to register the font as well
+ registerFont = true;
// if we're debugging from Eclipse, grab it from the work folder (user.dir is /app)
fontFile = new File(System.getProperty("user.dir"), "../build/shared/lib/fonts/" + filename);
}
@@ -986,6 +990,10 @@ static private Font createFont(String filename, int size) throws IOException, Fo
// if we're debugging the new Java Mode from Eclipse, paths are different
fontFile = new File(System.getProperty("user.dir"), "../../shared/lib/fonts/" + filename);
}
+ if (!fontFile.exists()) {
+ // this if for Linux, where we're shipping a second copy of the fonts outside of java
+ fontFile = Platform.getContentFile("lib/fonts/" + filename);
+ }
if (!fontFile.exists()) {
String msg = "Could not find required fonts. ";
// This gets the JAVA_HOME for the *local* copy of the JRE installed with
@@ -1003,6 +1011,13 @@ static private Font createFont(String filename, int size) throws IOException, Fo
BufferedInputStream input = new BufferedInputStream(new FileInputStream(fontFile));
Font font = Font.createFont(Font.TRUETYPE_FONT, input);
input.close();
+
+ // this makes Font() work for font files in custom locations
+ if (registerFont) {
+ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+ ge.registerFont(font);
+ }
+
return font.deriveFont((float) size);
}
diff --git a/build/build.xml b/build/build.xml
index eaaf4dc94f..b1140e02a2 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -611,17 +611,10 @@
-
+
-
-
-
-
-
@@ -756,7 +749,7 @@
-
+
@@ -857,11 +850,6 @@
-->
-
-
-
-
-
-
+
@@ -1119,10 +1107,6 @@
-->
-
-
-
-