[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: Text mismeasured at certain Windows DPI levels
From:       Kevin Rushforth <kevin.rushforth () oracle ! com>
Date:       2018-03-13 12:54:53
Message-ID: 5AA7CA1D.1000705 () oracle ! com
[Download RAW message or body]

Thanks. We'll take a look. It's possible this is related to other bugs 
with initial sizing that were introduced with HiDPI spuport (although 
that wouldn't explain the continued failure at 175%).

-- Kevin


Chris Nahr wrote:
> OK, I filed a bug report with internal review ID 9052971. 
> Interestingly, merely calling sizeToScene explicitly (which shouldn't 
> be necessary though) fixes the bug at 125% and 150% but not at 175%. I 
> added that info to the report and the test program.
>
> Thanks, Chris
>
>
> On 2018-03-12 16:02, Kevin Rushforth wrote:
>> Since you have a simple test program that reproduces this bug, can 
>> you please file a bug report?
>>
>> http://bugreport.java.com/
>>
>> Thanks.
>>
>> -- Kevin
>>
>> Chris Nahr wrote:
>>> After some more experimentation I added some details and a 
>>> screenshot (from another test program) to this blog post:
>>> http://news.kynosarges.org/2018/03/11/windows-gui-dpi-scaling-in-2018/
>>>
>>> That's about a small test suite for DPI scaling, and it's where I 
>>> first saw this bug. Like the repro program below these test programs 
>>> are quite simple. The bug does not seem to occur in more complex 
>>> real-world programs, but it's reproducible when it does occur and 
>>> also affects labeled controls other than checkboxes (saw it in 
>>> buttons).
>>>
>>> As I wrote in the blog post: My present guess is that on DPI scales 
>>> that are not multiples of 100%, there is a small discrepancy in the 
>>> initial measurement between a label's required width and the width 
>>> provided by its container. In complex windows this gets eventually 
>>> fixed by subsequent layout passes, but in simple windows the error 
>>> persists and manifests as an ellipsis.
>>>
>>> -- Christoph Nahr
>>>
>>>
>>> On 2018-03-09 10:58, Chris Nahr wrote:
>>>> I've found a pretty serious issue with CheckBox labels on Windows 
>>>> DPI levels other than 100% or 200%. Apparently the label 
>>>> mismeasures itself during layout, so its text is cut off with an 
>>>> ellipsis.
>>>>
>>>> I've attached a simple program to reproduce this. Running with 
>>>> -Dglass.win.uiScale=100%, 125%, 150%, 175%, 200% cuts off all 
>>>> CheckBox labels on any DPI scale between 100% and 200%. My 
>>>> environment is Java SE 9.0.4 on Windows 10 Creators Update.
>>>>
>>>> The only workaround I found was to set an explicit minimum width 
>>>> for the CheckBox. In that case the incorrect self-measurement of 
>>>> the label text is ignored and the full text displayed.
>>>>
>>>> Best regards,
>>>> Christoph Nahr
>>>>
>>>>
>>>> ----- Test Program -----
>>>>
>>>> import javafx.application.*;
>>>> import javafx.scene.*;
>>>> import javafx.scene.control.*;
>>>> import javafx.scene.layout.*;
>>>> import javafx.stage.*;
>>>>
>>>> public class CheckBoxLabel extends Application {
>>>>
>>>>      public static void main(String[] args) {
>>>>          Application.launch(args);
>>>>      }
>>>>
>>>>      @Override
>>>>      public void start(Stage stage) {
>>>>          final HBox box = new HBox();
>>>>          for (int i = 0; i < 4; i++)
>>>>              box.getChildren().add(new CheckBox("Check"));
>>>>
>>>>          stage.setScene(new Scene(box));
>>>>          stage.show();
>>>>      }
>>>> }
>>>>
>>
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic