-
Notifications
You must be signed in to change notification settings - Fork 461
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8231864: JavaFX Labels in Tab's VBox is not displayed until it is clicked #978
8231864: JavaFX Labels in Tab's VBox is not displayed until it is clicked #978
Conversation
…cked Creating a not-displayed node and then modifying its contents caused JFX to not consume its old dirty region and thus not update it. When such node was displayed, its old dirty region was used for drawing, which in some cases (ex. new content taking more space) caused it to clip. Resolved by always unionizing dirty regions with new bounds.
👋 Welcome back lkostyra! A progress list of the required criteria for merging this PR into |
Webrevs
|
This looks like the right fix. @arapte can you review? |
} else { | ||
// TODO I think this is vestigial from Scenario and will never | ||
// actually occur in real life... (RT-23956) | ||
dirtyBounds = dirtyBounds.deriveWithUnion(transformedBounds); | ||
} | ||
dirtyBounds = dirtyBounds.deriveWithUnion(bounds); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to create a unit test that fails with unmodified code but passes after the fix?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given the nature of the failure, an automated test would be difficult at best. Given the simplicity of the fix, testing it manually might be the best approach.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change looks good.
Verified the computed dirtyBounds
with and without the change. They look as expected.
I shall test more with some apps(Ensemble).
Providing one minor suggestion.
// TODO I think this is vestigial from Scenario and will never | ||
// actually occur in real life... (RT-23956) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comments should be removed and updated to explain the scenario when flow enters the else block and I think RT-23956 can be closed with this fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated the comment. I agree, RT-23956 can now be closed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@lukostyra This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 9 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@arapte) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
/integrate |
@lukostyra |
/sponsor |
Going to push as commit 0dbc448.
Your commit was automatically rebased without conflicts. |
@arapte @lukostyra Pushed as commit 0dbc448. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Creating a not-displayed node and then modifying its contents caused JFX to not consume its old dirty region and thus not update it. When such node was displayed, its old dirty region was used for drawing, which in some cases (ex. new content taking more space - a Label having more text as in bug request) caused it to clip.
Resolved by always unionizing dirty regions with new bounds when calculating Node's transformed bounds.
Change was tested on macOS and Windows 10 and does not affect any tests.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx pull/978/head:pull/978
$ git checkout pull/978
Update a local copy of the PR:
$ git checkout pull/978
$ git pull https://git.openjdk.org/jfx pull/978/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 978
View PR using the GUI difftool:
$ git pr show -t 978
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/978.diff