Thank you all for the feedback.

I believe the documentation for the Stage class could benefit from
additional clarification. I will draft some suggestions and submit them for
review.

-- Thiago

Em qua., 9 de abr. de 2025 às 12:28, Martin Fox <martinfox...@gmail.com>
escreveu:

> On macOS 15.3.2 I get the same results as Andy. When I press the top
> button glass asks the OS to move the window offscreen but the OS shifts the
> location 40 units to the left so it’s partially onscreen.
>
> On Apr 9, 2025, at 8:08 AM, Andy Goryachev <andy.goryac...@oracle.com>
> wrote:
>
> Here are the results on macOS 15.3.2, with the primary (retina, scale=2)
> at the bottom and the external (scale=1) at the top like so
>
> <image001.png>
>
> In both cases, the first button (Move To 1800.0) moves the window to the
> same screen partially outside of the viewing area (only about ~15% of the
> left side remains visible), while the other button (Move To 900.0) shifts
> to the right.
>
> My setup uses the setting [Desktop & Dock -> Displays have separate Spaces
> OFF] so I can move the windows between the monitors.
>
> -andy
>
>
>
> *From: *openjfx-dev <openjfx-dev-r...@openjdk.org> on behalf of Thiago
> Milczarek Sayão <thiago.sa...@gmail.com>
> *Date: *Wednesday, April 9, 2025 at 03:56
> *To: *openjfx-dev <openjfx-dev@openjdk.org>
> *Subject: *Help test the behavior of a multi-screen setup with both Mac
> and Windows
> Hi,
>
> Could anyone with a multi-screen setup on Mac and/or Windows please share
> the results of the two buttons on this sample app? Your feedback would be
> greatly appreciated!
>
> On Ubuntu 24.04 the first button moves the Stage to the end of the first
> screen (bit weird).
> The second work as expected, it gets moved to the start of the center of
> the last screen.
>
> Thanks!
>
>
> import javafx.application.Application;
> import javafx.geometry.Pos;
> import javafx.geometry.Rectangle2D;
> import javafx.scene.control.Button;
> import javafx.scene.layout.VBox;
> import javafx.stage.Screen;
> import javafx.stage.StageStyle;
> import javafx.application.Platform;
> import javafx.scene.Scene;
> import javafx.scene.layout.StackPane;
> import javafx.scene.paint.Color;
> import javafx.stage.Stage;
>
> import java.util.Comparator;
>
> public class TestScreenBounds extends Application {
>
>     @Override
>     public void start(Stage stage) {
>         stage.setTitle("Move Outside Bounds");
>         Rectangle2D bounds = Screen.getScreens().stream()
>                 .map(Screen::getBounds)
>                 
> .sorted(Comparator.comparingDouble(Rectangle2D::getMaxX).reversed())
>                 .findFirst()
>                 .orElseThrow();
>
>         Button btn = new Button("Move To " + bounds.getMaxX());
>         btn.setOnAction(event -> stage.setX(bounds.getMaxX()));
>
>         double middleLastScreen = bounds.getMinX() + bounds.getWidth() / 2;
>
>         Button btn2 = new Button("Move To " + middleLastScreen);
>         btn2.setOnAction(event -> stage.setX(middleLastScreen));
>
>         VBox root = new VBox(btn, btn2);
>         root.setFillWidth(true);
>         root.setAlignment(Pos.CENTER);
>         Scene scene = new Scene(root, 300, 300);
>         stage.setScene(scene);
>         stage.show();
>     }
>
>     public static void main(String[] args) {
>         launch(TestScreenBounds.class, args);
>     }
> }
>
>
>

Reply via email to