<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:"Yu Gothic";
panose-1:2 11 4 0 0 0 0 0 0 0;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"Iosevka Fixed SS16";
panose-1:2 0 5 9 3 0 0 0 0 4;}
@font-face
{font-family:"Times New Roman \(Body CS\)";
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:"\@Yu Gothic";
panose-1:2 11 4 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:10.0pt;
font-family:"Aptos",sans-serif;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Consolas",serif;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Iosevka Fixed SS16";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">I've got Mac with one (or possibly two) external monitors. I'll test and report later today.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">-andy<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">openjfx-dev <openjfx-dev-retn@openjdk.org> on behalf of Thiago Milczarek Sayão <thiago.sayao@gmail.com><br>
<b>Date: </b>Wednesday, April 9, 2025 at 03:56<br>
<b>To: </b>openjfx-dev <openjfx-dev@openjdk.org><br>
<b>Subject: </b>Help test the behavior of a multi-screen setup with both Mac and Windows<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Hi,<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">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!<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">On Ubuntu 24.04 the first button moves the Stage to the end of the first screen (bit weird). <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">The second work as expected, it gets moved to the start of the center of the last screen.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Thanks!<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<div>
<div>
<pre style="margin-bottom:12.0pt;background:#1E1F22"><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.application.Application;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.geometry.Pos;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.geometry.Rectangle2D;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.scene.control.Button;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.scene.layout.VBox;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.stage.Screen;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.stage.StageStyle;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.application.Platform;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.scene.Scene;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.scene.layout.StackPane;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.scene.paint.Color;<br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">javafx.stage.Stage;<br><br></span><span style="color:#CF8E6D">import </span><span style="color:#BCBEC4">java.util.Comparator;<br><br></span><span style="color:#CF8E6D">public class </span><span style="color:#BCBEC4">TestScreenBounds </span><span style="color:#CF8E6D">extends </span><span style="color:#BCBEC4">Application {<br><br> @Override<br> </span><span style="color:#CF8E6D">public void </span><span style="color:#BCBEC4">start(Stage stage) {<br> stage.setTitle(</span><span style="color:#6AAB73">"Move Outside Bounds"</span><span style="color:#BCBEC4">);<br> Rectangle2D bounds = Screen.getScreens().stream()<br> .map(Screen::getBounds)<br> .sorted(Comparator.comparingDouble(Rectangle2D::getMaxX).reversed())<br> .findFirst()<br> .orElseThrow();<br><br> Button btn = </span><span style="color:#CF8E6D">new </span><span style="color:#BCBEC4">Button(</span><span style="color:#6AAB73">"Move To " </span><span style="color:#BCBEC4">+ bounds.getMaxX());<br> btn.setOnAction(event -> stage.setX(bounds.getMaxX()));<br><br> </span><span style="color:#CF8E6D">double </span><span style="color:#BCBEC4">middleLastScreen = bounds.getMinX() + bounds.getWidth() / </span><span style="color:#2AACB8">2</span><span style="color:#BCBEC4">;<br><br> Button btn2 = </span><span style="color:#CF8E6D">new </span><span style="color:#BCBEC4">Button(</span><span style="color:#6AAB73">"Move To " </span><span style="color:#BCBEC4">+ middleLastScreen);<br> btn2.setOnAction(event -> stage.setX(middleLastScreen));<br><br> VBox root = </span><span style="color:#CF8E6D">new </span><span style="color:#BCBEC4">VBox(btn, btn2);<br> root.setFillWidth(</span><span style="color:#CF8E6D">true</span><span style="color:#BCBEC4">);<br> root.setAlignment(Pos.CENTER);<br> Scene scene = </span><span style="color:#CF8E6D">new </span><span style="color:#BCBEC4">Scene(root, </span><span style="color:#2AACB8">300</span><span style="color:#BCBEC4">, </span><span style="color:#2AACB8">300</span><span style="color:#BCBEC4">);<br> stage.setScene(scene);<br> stage.show();<br> }<br><br> </span><span style="color:#CF8E6D">public static void </span><span style="color:#BCBEC4">main(String[] args) {<br> launch(TestScreenBounds.</span><span style="color:#CF8E6D">class</span><span style="color:#BCBEC4">, args);<br> }<br>}<o:p></o:p></span></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>