RFR: 8274932: Render scales in EmbeddedWindow are not properly updated [v8]

Andy Goryachev angorya at openjdk.org
Fri Aug 4 05:49:37 UTC 2023


On Thu, 3 Aug 2023 04:06:04 GMT, Prasanta Sadhukhan <psadhukhan at 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
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Call updateSceneState with lock and in FX thread

The good:
- image on both monitors (macOS) appear with no gaps
- text on both monitors looks good, anti-aliasing works as expected

The bad:
- both windows (using EmbeddedFrameBug class listed earlier) shows O100% for primary retina screen (should be 200%).  What's more, moving from one screen to another does not trigger the `renderScaleXProperty` change event, using this code:


        scene.windowProperty().addListener((ob, oldWindow, newWindow) -> {
            newWindow.renderScaleXProperty().addListener((obs, oldValue, newValue) -> updateText(label, newValue));
            updateText(label, newWindow.getRenderScaleX());
            newWindow.renderScaleXProperty().addListener((s,p,c) -> {
               System.out.println("w=" + newWindow + " scale=" + c); 
            });
        });


Is this a problem?

<img width="376" alt="Screenshot 2023-08-03 at 10 56 56" src="https://github.com/openjdk/jfx/assets/107069028/57b97896-08ca-4738-bc8a-b6459f803188">

should be 200%

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1171#issuecomment-1664410463
PR Comment: https://git.openjdk.org/jfx/pull/1171#issuecomment-1664412446


More information about the openjfx-dev mailing list