Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions app/src/processing/app/ui/Toolkit.java
Original file line number Diff line number Diff line change
Expand Up @@ -975,17 +975,25 @@ 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);
}
if (!fontFile.exists()) {
// 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
Expand All @@ -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);
}

Expand Down
22 changes: 3 additions & 19 deletions build/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -611,17 +611,10 @@
<copy todir="macosx/work/Processing.app/Contents/Java">
<fileset dir=".." includes="core/library/**" /> <!-- why this? -->
<!--<fileset dir="shared" includes="launch4j/**" />-->
<fileset dir="shared" includes="lib/**" excludes="lib/fonts/**" />
<fileset dir="shared" includes="lib/**" />
<fileset file="shared/revisions.txt" />
</copy>

<!--
Processing.app/Contents/PlugIns/jdk1.7.0_40.jdk/Contents/Home/jre/lib/fonts
-->
<copy todir="macosx/work/Processing.app/Contents/PlugIns/jdk${jdk.esoteric}.jdk/Contents/Home/jre/lib/fonts">
<fileset dir="shared/lib/fonts" includes="*" />
</copy>

<antcall target="assemble">
<param name="target.path"
value="macosx/work/Processing.app/Contents/Java" />
Expand Down Expand Up @@ -756,7 +749,7 @@
<copy todir="linux/work">
<fileset dir=".." includes="core/library/**" />
<fileset dir="shared" includes="launch4j/**" />
<fileset dir="shared" includes="lib/**" excludes="lib/fonts/**" />
<fileset dir="shared" includes="lib/**" />
<fileset dir="shared" includes="modes/**" />
<fileset file="shared/revisions.txt" />
</copy>
Expand Down Expand Up @@ -857,11 +850,6 @@
-->
<fileset refid="jre-optional-linux" />
</delete>

<copy todir="linux/work/java/lib/fonts">
<fileset dir="shared/lib/fonts" includes="*" />
</copy>

</target>

<target name="linux-run" depends="linux-build"
Expand Down Expand Up @@ -1053,7 +1041,7 @@
<copy todir="windows/work">
<fileset dir=".." includes="core/library/**" />
<fileset dir="shared" includes="launch4j/**" />
<fileset dir="shared" includes="lib/**" excludes="lib/fonts/**" />
<fileset dir="shared" includes="lib/**" />
<fileset dir="shared" includes="modes/**" />
<fileset file="shared/revisions.txt" />
</copy>
Expand Down Expand Up @@ -1119,10 +1107,6 @@
-->
<fileset refid="jre-optional-windows" />
</delete>

<copy todir="windows/work/java/lib/fonts">
<fileset dir="shared/lib/fonts" includes="*" />
</copy>
</target>

<target name="windows-run" depends="windows-build"
Expand Down