[Rev 02] RFR: 8232811: Dialog's preferred size no longer accommodates multi-line strings

Ambarish Rapte arapte at openjdk.java.net
Thu Dec 19 14:32:35 UTC 2019


On Thu, 19 Dec 2019 14:32:32 GMT, Thiago Milczarek Sayao <tsayao at openjdk.org> wrote:

>> https://bugs.openjdk.java.net/browse/JDK-8232811
>> 
>> This one was hard to tackle.
>> 
>> ./gradlew -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests test.robot.javafx.scene.dialog.DialogWithOwnerSizingTest
> 
> The pull request has been updated with 1 additional commit.

The fix itself looks good. suggested some changes in test and a query.
Please take a look.

tests/system/src/test/java/test/robot/javafx/scene/dialog/DialogWithOwnerSizingTest.java line 34:

> 33: import javafx.scene.control.Dialog;
> 34: import javafx.scene.control.DialogEvent;
> 35: import javafx.scene.robot.Robot;

DialogEvent is not used in program, please remove the import.

tests/system/src/test/java/test/robot/javafx/scene/dialog/DialogWithOwnerSizingTest.java line 50:

> 49: 
> 50: //see JDK8193502
> 51: public class DialogWithOwnerSizingTest {

Please change to JDK-8193502

tests/system/src/test/java/test/robot/javafx/scene/dialog/DialogWithOwnerSizingTest.java line 64:

> 63:     public void dialogWithOwnerSizingTest() throws Exception {
> 64:         Thread.sleep(500);
> 65:         clickButton();

This `sleep()` can be removed.

tests/system/src/test/java/test/robot/javafx/scene/dialog/DialogWithOwnerSizingTest.java line 87:

> 86:         });
> 87:         Thread.sleep(600);
> 88:         waitForLatch(dialogHideLatch, 10, "Failed to hide Dialog");

This `sleep()` can be removed too. anyway `dailogHideLatch` will synchronize.

tests/system/src/test/java/test/robot/javafx/scene/dialog/DialogWithOwnerSizingTest.java line 77:

> 76: 
> 77:         Thread.sleep(400);
> 78:         waitForLatch(dialogShownLatch, 10, "Failed to show Dialog");

This sleep() can be removed too. anyway `dailogShowLatch `will synchronize.

modules/javafx.graphics/src/main/native-glass/gtk/glass_window.cpp line 1062:

> 1061:         geometry.final_height.type = BOUNDSTYPE_CONTENT;
> 1062:     }
> 1063: 

So now `geometry.final_width.value` and `geometry.final_height.value` will be set after the `Dialog `is displayed on screen.
Does this mean that, the `Dialog` will be resized after it is displayed ? I did not observe any size change visually.

An observation unrelated to this change: `Dialog` changes it's position after being displayed. It can not be observed always, but is very frequent. Should be easy to observe it on a slow machine.
On the same machine, I did not observe any size change though.

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

Changes requested by arapte (Reviewer).

PR: https://git.openjdk.java.net/jfx/pull/63


More information about the openjfx-dev mailing list