<div dir="ltr"><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Hi all,</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">A user reported this on reddit: <a href="https://www.reddit.com/r/JavaFX/comments/1j8ibpf/platformrunlater_not_updating_the_content_when/">https://www.reddit.com/r/JavaFX/comments/1j8ibpf/platformrunlater_not_updating_the_content_when/</a></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">I do feel this is a bug so I'm raising it here. Windows 11, JFX 23.0.2.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">A quick summary is: if you change a Label while your app is minimized, for example, the change does not get reflected when restored/maximised, unless _something else_ triggers a redraw, such as a window resize, or a hover over a button, etc. </div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">The act of simply maximising the window does seem to trigger a redraw. I think it should.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Here are two fairly self-explanatory Java classes to demonstrate the problem (adapted from the reddit post).</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Steps: </div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">- Run MinimizeBugApp, observe label</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">- Run Client, hit enter and observe label change as expected</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">- Minimize app, and hit enter on Client one or more times (all triggering label changes)</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">- Restore app, note Label incorrectly still *displays* the same value as before the minimize, despite update(s)</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">- Re-size window to force a redraw, observe correct label value appears</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">public class MinimizeBugApp extends Application {<br><br>    public void start(Stage stage) {<br>        Label label = new Label("This should be modified when the signal is received");<br><br>        StackPane stackPane = new StackPane();<br>        stackPane.getChildren().add(label);<br>        Scene scene = new Scene(stackPane, 500, 500);<br>        stage.setScene(scene);<br>        stage.show();<br><br>        new Thread(() -> {<br>            this.startServer(label);<br>        }).start();<br>    }<br><br>    void startServer(final Label label) {<br>        try (ServerSocket serverSocket = new ServerSocket(1590)) {<br>            while (true) {<br>                System.out.println("Waiting for connection...");<br>                serverSocket.accept();<br>                Platform.runLater(() -> {<br>                    System.out.println("Setting signal is received...");<br>                    label.setText("The signal is received " + new Date());<br><br>                    // This will print the correct text, always -- but the texted isn't what is reflected if<br>                    // it's minimized and then maximized<br>                    System.out.println("Label text should be: " + label.getText());<br>                });<br>            }<br>        } catch (Exception e) {<br>            e.printStackTrace();<br>        }<br>    }<br><br>    public static void main(String[] args) {<br>        launch();<br>    }<br>}</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">// Simple test to trigger something in a JavaFX app via a socket<br>public class Client {<br>    public static void main(String[] args) {<br>        Scanner scanner = new Scanner(System.in);<br><br>        while (true) {<br>            try {<br>                System.out.print("Hit enter to create connection");<br>                scanner.nextLine();<br>                new Socket("localhost", 1590);<br>                System.out.println("Created connection");<br>            } catch (IOException e) {<br>                e.printStackTrace();<br>            }<br>        }<br>    }<br>}</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Any thoughts? Is this by design for some reason, or a bug?</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><br clear="all"></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font color="#000000" face="verdana, sans-serif"><br></font></div><div><font color="#000000" face="verdana, sans-serif"><span class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Kind </span>Regards,</font></div><div><font color="#000000" face="verdana, sans-serif"><b><br></b></font></div><font color="#000000" face="verdana, sans-serif"><b>Cormac Redmond</b></font><div><font color="#000000" face="verdana, sans-serif">Software Engineer, Certak Ltd.</font></div><div><font color="#000000"><b><br></b></font></div><div><font face="verdana, sans-serif" size="2">e: <a href="mailto:credmond@certak.com" target="_blank">credmond@certak.com</a> | m: +353 (0) 86 268 2152 | w: <a href="http://www.certak.com" target="_blank">www.certak.com</a></font></div><div><br></div></div></div></div></div>