From ff899db6b08058b31310588bf27f61bee188eed4 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Thu, 26 Aug 2021 03:53:09 +0800 Subject: [PATCH] feat: rounded window corner --- .../hmcl/ui/decorator/DecoratorSkin.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorSkin.java index 94d429dde..d842399b6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorSkin.java @@ -77,17 +77,28 @@ public class DecoratorSkin extends SkinBase { root = new StackPane(); root.getStyleClass().add("window"); + StackPane shadowContainer = new StackPane(); + shadowContainer.getStyleClass().add("body"); + shadowContainer.setPickOnBounds(false); + parent = new StackPane(); - parent.getStyleClass().add("body"); parent.backgroundProperty().bind(skinnable.contentBackgroundProperty()); parent.setPickOnBounds(false); parent.prefHeightProperty().bind(control.prefHeightProperty()); parent.prefWidthProperty().bind(control.prefWidthProperty()); + Rectangle clip = new Rectangle(); + clip.widthProperty().bind(parent.widthProperty()); + clip.heightProperty().bind(parent.heightProperty()); + clip.setArcWidth(8); + clip.setArcHeight(8); + parent.setClip(clip); + root.addEventFilter(MouseEvent.MOUSE_RELEASED, this::onMouseReleased); root.addEventFilter(MouseEvent.MOUSE_DRAGGED, this::onMouseDragged); root.addEventFilter(MouseEvent.MOUSE_MOVED, this::onMouseMoved); - root.getChildren().setAll(parent); + shadowContainer.getChildren().setAll(parent); + root.getChildren().setAll(shadowContainer); // animation layer at bottom {