From 880a8332a37f47b2ebf1c3d2eb7ae5d8df6e245a Mon Sep 17 00:00:00 2001 From: Aleksandr Zvegintsev Date: Wed, 26 Jun 2024 20:53:06 +0200 Subject: [PATCH] get rid of AWT dependencies(Rectangle, Dimension) --- .../ui/gtk/screencast/ScreencastHelper.java | 8 +-- .../glass/ui/gtk/screencast/TokenItem.java | 4 +- .../glass/ui/gtk/screencast/TokenStorage.java | 4 +- .../java/com/sun/javafx/geom/Dimension.java | 50 +++++++++++++++++++ 4 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 modules/javafx.graphics/src/main/java/com/sun/javafx/geom/Dimension.java diff --git a/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/ScreencastHelper.java b/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/ScreencastHelper.java index e968e2619ca..643347d234b 100644 --- a/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/ScreencastHelper.java +++ b/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/ScreencastHelper.java @@ -27,7 +27,7 @@ import com.sun.glass.ui.Screen; -import java.awt.Rectangle; +import com.sun.javafx.geom.Rectangle; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.List; @@ -103,7 +103,7 @@ private static List getSystemScreensBounds() { return Screen .getScreens() .stream() - .map(screen -> new Rectangle( //TODO should we get rid of AWT Rectangle? + .map(screen -> new Rectangle( clipRound(screen.getPlatformX() * screen.getPlatformScaleX()), clipRound(screen.getPlatformY() * screen.getPlatformScaleY()), clipRound(screen.getPlatformWidth() * screen.getPlatformScaleX()), @@ -140,7 +140,7 @@ public static synchronized void getRGBPixels( List affectedScreenBounds = getSystemScreensBounds() .stream() - .filter(captureArea::intersects) + .filter(r -> !captureArea.intersection(r).isEmpty()) .toList(); if (SCREENCAST_DEBUG) { @@ -162,7 +162,7 @@ public static synchronized void getRGBPixels( int[] affectedScreenBoundsArray = affectedScreenBounds .stream() - .filter(captureArea::intersects) + .filter(r -> !captureArea.intersection(r).isEmpty()) .flatMapToInt(bounds -> IntStream.of( bounds.x, bounds.y, bounds.width, bounds.height diff --git a/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenItem.java b/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenItem.java index 24eb5e7c415..c549a66e3ce 100644 --- a/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenItem.java +++ b/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenItem.java @@ -25,8 +25,8 @@ package com.sun.glass.ui.gtk.screencast; -import java.awt.Dimension; -import java.awt.Rectangle; +import com.sun.javafx.geom.Dimension; +import com.sun.javafx.geom.Rectangle; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenStorage.java b/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenStorage.java index 150005590d8..f6cdc9969da 100644 --- a/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenStorage.java +++ b/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/screencast/TokenStorage.java @@ -25,8 +25,8 @@ package com.sun.glass.ui.gtk.screencast; -import java.awt.Dimension; -import java.awt.Rectangle; +import com.sun.javafx.geom.Dimension; +import com.sun.javafx.geom.Rectangle; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; diff --git a/modules/javafx.graphics/src/main/java/com/sun/javafx/geom/Dimension.java b/modules/javafx.graphics/src/main/java/com/sun/javafx/geom/Dimension.java new file mode 100644 index 00000000000..8e17027b718 --- /dev/null +++ b/modules/javafx.graphics/src/main/java/com/sun/javafx/geom/Dimension.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.javafx.geom; + +import java.util.Objects; + +public class Dimension { + public int width; + public int height; + + public Dimension(int width, int height) { + this.width = width; + this.height = height; + } + + public boolean equals(Object obj) { + if (obj instanceof Dimension) { + Dimension d = (Dimension) obj; + return (width == d.width) && (height == d.height); + } + return false; + } + + public int hashCode() { + return Objects.hash(width, height); + } +}