emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#39745: closed ([PATCH 4/7] gnu: java-openjfx-swing: Add new variable


From: GNU bug Tracking System
Subject: bug#39745: closed ([PATCH 4/7] gnu: java-openjfx-swing: Add new variable.)
Date: Sun, 15 Mar 2020 18:21:03 +0000

Your message dated Sun, 15 Mar 2020 14:19:53 -0400
with message-id <address@hidden>
and subject line Re: [bug#39742] [v2] gnu: java-openjfx-build: Add helpful 
patch.
has caused the debbugs.gnu.org bug report #39742,
regarding [PATCH 4/7] gnu: java-openjfx-swing: Add new variable.
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden.)


-- 
39742: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39742
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH 4/7] gnu: java-openjfx-swing: Add new variable. Date: Sat, 22 Feb 2020 21:17:52 +0100
* gnu/packages/java.scm (java-openjfx-build): Add patch to the base package.
* 
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)))))
 
+(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-JFXPanel-with-JDK-8.patch
 
b/gnu/packages/patches/java-openjfx-build-swing-compile-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 <address@hidden>
+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-8149967
+---
+ .../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.java 
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;
+ 
+@@ -681,6 +682,23 @@ 
+                 e.getCaret().getInsertionIndex());
+     }
+
++    // FIXME: once we move to JDK 9 as the boot JDK we should remove the
++    // 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 = surfaceData.getDefaultScaleX();
++        */
++        double scale = 1;
++        try {
++            Method meth = SurfaceData.class.getMethod("getDefaultScaleX");
++            scale = (Double)meth.invoke(surfaceData);
++        } catch (Exception ex) {
++        }
++
++        return (int)Math.round(scale);
++    }
+ 
+     /**
+      * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)}
+@@ -720,7 +738,7 @@ public class JFXPanel extends JComponent {
+ 
+             int newScaleFactor = scaleFactor;
+             if (g instanceof SunGraphics2D) {
+-                newScaleFactor = 
((SunGraphics2D)g).surfaceData.getDefaultScale();
++                newScaleFactor = 
getDefaultScale(((SunGraphics2D)g).surfaceData);
+             }
+             if (scaleFactor != newScaleFactor) {
+                 resizePixelBuffer(newScaleFactor);
+--
+2.24.1
+
-- 
2.24.1




--- End Message ---
--- Begin Message --- Subject: Re: [bug#39742] [v2] gnu: java-openjfx-build: Add helpful patch. Date: Sun, 15 Mar 2020 14:19:53 -0400
I'm closing this bug ticket because Alexey is still working on some of
the patches and it's confusing to have the patches spread over multiple
tickets, even though we merged them. Alexey will open a new ticket soon.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]