From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:34384) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j5bFu-0005mf-KK for guix-patches@gnu.org; Sat, 22 Feb 2020 15:20:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j5bFt-0003WE-7x for guix-patches@gnu.org; Sat, 22 Feb 2020 15:20:06 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:44087) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j5bFt-0003Vl-4u for guix-patches@gnu.org; Sat, 22 Feb 2020 15:20:05 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1j5bFt-0001pd-25 for guix-patches@gnu.org; Sat, 22 Feb 2020 15:20:05 -0500 Subject: [bug#39745] [PATCH 4/7] gnu: java-openjfx-swing: Add new variable. Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:34204) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j5bEt-0005dh-Bj for guix-patches@gnu.org; Sat, 22 Feb 2020 15:19:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j5bEr-0008Q7-VT for guix-patches@gnu.org; Sat, 22 Feb 2020 15:19:03 -0500 Received: from mx4.mail.mmer.org ([178.22.66.29]:27549) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1j5bEr-00085h-5X for guix-patches@gnu.org; Sat, 22 Feb 2020 15:19:01 -0500 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id 0B8A89CE90 for ; Sat, 22 Feb 2020 19:48:11 +0000 (UTC) From: Alexey Abramov Date: Sat, 22 Feb 2020 21:17:52 +0100 Message-Id: <20200222201755.50425-4-levenson@mmer.org> In-Reply-To: <20200222201755.50425-1-levenson@mmer.org> References: <20200222201755.50425-1-levenson@mmer.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 39745@debbugs.gnu.org * gnu/packages/java.scm (java-openjfx-build): Add patch to the base packa= ge. * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK= -8.patch: Fix swing compilation for jdk8. --- gnu/packages/java.scm | 16 ++++- ...ld-swing-compile-JFXPanel-with-JDK-8.patch | 58 +++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-swing-compile= -JFXPanel-with-JDK-8.patch diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4e975a0490..f2a3861501 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2357,7 +2357,8 @@ new Date();")) (sha256 (base32 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) - (patches (search-patches "java-openjfx-build-get_guix_jdk_= version.patch")))) + (patches (search-patches "java-openjfx-build-get_guix_jdk_= version.patch" + "java-openjfx-build-swing-compile= -JFXPanel-with-JDK-8.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" @@ -3045,6 +3046,19 @@ distribution."))) `(("java-openjfx-base" ,java-openjfx-base) ("java-swt" ,java-swt))))) =20 +(define-public java-openjfx-swing + (package (inherit java-openjfx-build) + (name "java-openjfx-swing") + (arguments + `(#:jar-name "java-openjfx-swing.jar" + #:source-dir "modules/swing/src/main/java" + #:tests? #f)) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (propagated-inputs + `(("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public java-openjfx-media (package (inherit java-openjfx-build) (name "java-openjfx-media") diff --git a/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPan= el-with-JDK-8.patch b/gnu/packages/patches/java-openjfx-build-swing-compi= le-JFXPanel-with-JDK-8.patch new file mode 100644 index 0000000000..948c0355e9 --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with= -JDK-8.patch @@ -0,0 +1,58 @@ +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 +From: Alexey Abramov +Date: Fri, 3 Jan 2020 01:17:45 +0100 +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 + +For more info please see https://bugs.openjdk.java.net/browse/JDK-814996= 7 +--- + .../java/javafx/embed/swing/JFXPanel.java | 20 ++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.jav= a b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +index 97515e2290..614ed656b9 100644 +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -81,6 +81,7 @@ import sun.awt.AppContext; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; +=20 +@@ -681,6 +682,23 @@=20 + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove th= e ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale =3D surfaceData.getDefaultScaleX(); ++ */ ++ double scale =3D 1; ++ try { ++ Method meth =3D SurfaceData.class.getMethod("getDefaultScal= eX"); ++ scale =3D (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } +=20 + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graph= ics)} +@@ -720,7 +738,7 @@ public class JFXPanel extends JComponent { +=20 + int newScaleFactor =3D scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor =3D ((SunGraphics2D)g).surfaceData.getDe= faultScale(); ++ newScaleFactor =3D getDefaultScale(((SunGraphics2D)g).s= urfaceData); + } + if (scaleFactor !=3D newScaleFactor) { + resizePixelBuffer(newScaleFactor); +-- +2.24.1 + --=20 2.24.1