libbluray | branch: master | hpi1 <[email protected]> | Fri Mar 6 10:22:02 2015 +0200| [7b085136bbae0e657a0ac1964f93efff0c3d778b] | committer: hpi1
Fix java.awt.Component.getFontMetric() with some J2SE versions > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=7b085136bbae0e657a0ac1964f93efff0c3d778b --- src/libbluray/bdj/java/java/awt/BDFontMetrics.java | 11 +++- .../bdj/java/sun/font/FontDesignMetrics.java | 55 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/src/libbluray/bdj/java/java/awt/BDFontMetrics.java b/src/libbluray/bdj/java/java/awt/BDFontMetrics.java index 4c43356..217c0a2 100644 --- a/src/libbluray/bdj/java/java/awt/BDFontMetrics.java +++ b/src/libbluray/bdj/java/java/awt/BDFontMetrics.java @@ -30,7 +30,7 @@ import java.util.Map; import org.videolan.Logger; -public class BDFontMetrics extends FontMetrics { +public class BDFontMetrics extends sun.font.FontDesignMetrics { static final long serialVersionUID = -4956160226949100590L; private static long ftLib = 0; @@ -175,6 +175,15 @@ public class BDFontMetrics extends FontMetrics { return fm; } + static { + sun.font.FontDesignMetrics.setGetFontMetricsAccess( + new sun.font.FontDesignMetrics.GetFontMetricsAccess() { + public sun.font.FontDesignMetrics getFontMetrics(Font font) { + return BDFontMetrics.getFontMetrics(font); + } + }); + } + static String stripAttributes(String fontname) { int dotidx; if ((dotidx = fontname.indexOf('.')) == -1) diff --git a/src/libbluray/bdj/java/sun/font/FontDesignMetrics.java b/src/libbluray/bdj/java/sun/font/FontDesignMetrics.java new file mode 100644 index 0000000..18b7a64 --- /dev/null +++ b/src/libbluray/bdj/java/sun/font/FontDesignMetrics.java @@ -0,0 +1,55 @@ +/* + * This file is part of libbluray + * Copyright (C) 2015 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * <http://www.gnu.org/licenses/>. + */ + +package sun.font; + +import java.awt.FontMetrics; +import java.awt.Font; + +/* + * This class is used to "fix" Java 7 java.awt.Component.getFontMetrics() + * + * one disc calls directly (new java.awt.Component() { ... } ).getFontMetrics(font) + * + */ + +public class FontDesignMetrics extends FontMetrics { + + protected interface GetFontMetricsAccess { + public abstract FontDesignMetrics getFontMetrics(Font font); + } + + private static GetFontMetricsAccess access; + + protected static void setGetFontMetricsAccess(GetFontMetricsAccess a) { + access = a; + } + + /* + * + */ + + public static FontDesignMetrics getMetrics(Font font) { + return access.getFontMetrics(font); + } + + protected FontDesignMetrics(Font font) { + super(font); + } +} _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
