On Fri, 8 Mar 2024 16:10:26 GMT, Marius Hanl <mh...@openjdk.org> wrote:

>> This PR fixes a long standing issue where the `Tooltip` will always wait one 
>> second until it appears the very first time, even if the 
>> `-fx-show-delay` was set to another value.
>> 
>> The culprit is, that the `cssForced` flag is not inside `Tooltip`, but 
>> inside the `TooltipBehaviour`. So the very first `Tooltip` gets processed 
>> correctly, but after no `Tooltip` will be processed by CSS before showing, 
>> resulting in the set `-fx-show-delay` to not be applied immediately.
>> 
>> Added a bunch of headful tests for the behaviour since there were none 
>> before.
>
> Marius Hanl has refreshed the contents of this pull request, and previous 
> commits have been removed. The incremental views will show differences 
> compared to the previous content of the PR. The pull request contains one new 
> commit since the last revision:
> 
>   JDK-8296387: [Tooltip, CSS] -fx-show-delay is only applied to the first 
> tooltip that is shown before it is displayed

Although the change is an improvement, I think a similar problem will still be 
present when CSS changes.  The `cssForced` flag I think needs to reset to 
`false` whenever a CSS styleable property of the tool tip is modified.  That 
would include all such properties...

This is a bit of a general issue in JavaFX (it really shouldn't be possible for 
any `Node` to be shown that hasn't had CSS processed for it), yet this can 
easily happen, and depending on how different the default style is versus the 
intended style, this can lead to a visual artifact (most noticable is for 
example a white background, when it is supposed to be black or transparent).

Perhaps we should open an issue to solve this for all controls in one go? A 
solution that would prevent **any** `Node` from being displayed without CSS 
applied?

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

PR Review: https://git.openjdk.org/jfx/pull/1394#pullrequestreview-1926087206

Reply via email to