On Thu, 6 Jul 2023 13:10:44 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> wrote:
> When the JavaFX scene is set before it is really shown, then the scale > factors are not properly propagated to the EmbeddedWindow, resulting in > showing wrong scales. > Fix is made to update scales to EmbeddedWindow Testing on Mac with 2 monitors (primary scale=2, secondary scale=1), running the Main class from the ticket. 1. getting exception: Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0 at javafx.graphics/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:293) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:475) at javafx.graphics/javafx.scene.Parent$3.onProposedChange(Parent.java:475) at javafx.base/com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:116) at javafx.base/com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:110) at javafx.controls/javafx.scene.control.skin.LabeledSkinBase.updateChildren(LabeledSkinBase.java:282) at javafx.controls/javafx.scene.control.skin.LabeledSkinBase.lambda$11(LabeledSkinBase.java:219) at javafx.controls/com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$1(LambdaMultiplePropertyChangeListenerHandler.java:88) at javafx.base/javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86) at javafx.base/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:192) at javafx.base/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104) at javafx.base/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111) at javafx.base/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145) at javafx.base/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:1) at javafx.base/javafx.beans.property.StringProperty.setValue(StringProperty.java:71) at javafx.controls/javafx.scene.control.Labeled.setText(Labeled.java:147) at andy_test/goryachev.apps.EmbeddedFrameBug.updateText(EmbeddedFrameBug.java:86) at andy_test/goryachev.apps.EmbeddedFrameBug.lambda$3(EmbeddedFrameBug.java:69) at javafx.base/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:192) at javafx.base/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base/javafx.beans.property.DoublePropertyBase.fireValueChangedEvent(DoublePropertyBase.java:107) at javafx.base/javafx.beans.property.DoublePropertyBase.markInvalid(DoublePropertyBase.java:114) at javafx.base/javafx.beans.property.DoublePropertyBase.set(DoublePropertyBase.java:148) at javafx.graphics/javafx.stage.Window.setRenderScaleX(Window.java:494) at javafx.swing/javafx.embed.swing.JFXPanel.updateComponentSize(JFXPanel.java:640) at javafx.swing/javafx.embed.swing.JFXPanel.addNotify(JFXPanel.java:945) at java.desktop/java.awt.Container.addNotify(Container.java:2804) at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4846) at java.desktop/java.awt.Container.addNotify(Container.java:2804) at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4846) at java.desktop/java.awt.Container.addNotify(Container.java:2804) at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4846) at java.desktop/javax.swing.JRootPane.addNotify(JRootPane.java:721) at java.desktop/java.awt.Container.addNotify(Container.java:2804) at java.desktop/java.awt.Window.addNotify(Window.java:791) at java.desktop/java.awt.Frame.addNotify(Frame.java:495) at java.desktop/java.awt.Window.show(Window.java:1053) at java.desktop/java.awt.Component.show(Component.java:1728) at java.desktop/java.awt.Component.setVisible(Component.java:1675) at java.desktop/java.awt.Window.setVisible(Window.java:1036) at andy_test/goryachev.apps.EmbeddedFrameBug.setFrameVisible(EmbeddedFrameBug.java:51) at andy_test/goryachev.apps.EmbeddedFrameBug.lambda$1(EmbeddedFrameBug.java:45) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 2. on primary retina monitor, the UI looks good: <img width="412" alt="Screenshot 2023-07-07 at 09 18 05" src="https://github.com/openjdk/jfx/assets/107069028/dbb3da3f-5b92-4d5b-b153-0a8e3e8df9ea"> on the secondary, not so good:  ------------- PR Comment: https://git.openjdk.org/jfx/pull/1171#issuecomment-1625650927