RFR: 8222210: JFXPanel popups open at wrong coordinates when using multiple hidpi monitors [v3]
Kevin Rushforth
kcr at openjdk.org
Fri Nov 4 17:53:54 UTC 2022
On Wed, 2 Nov 2022 20:07:22 GMT, Johan Vos <jvos at openjdk.org> wrote:
>> I suspect Math.floor() would be incorrect - we should use Math.round() for coordinates and Math.floor() for sizes (sizes will always be positive, I hope, and the rounded size will be slightly smaller than the original value).
>>
>> But for coordinates we should use (int)Math.round()
>
> I'll change it to Math.round, although I doubt it doesn't improve anything (but it won't make it worse either).
> The reason we need the transformation on those coordinates is to position new windows, *relative* against the location of the root window that we are given by Swing. Hence, if the operation applied to the window location coordinates (in sendMoveEventToFX) is the same as the operation applied to the mouse point (in sendMouseEventToFX), we are good.
> A bigger problem imho is that mouseEvents, scrollEvents and menuEvents are dealing with different precisions in the EmbeddedSceneInterface -- but that is a different problem.
I also expect that it won't make much of a difference here, but Andy is right that, for snapping positions, `Math.round` is preferred. That's what layout panes do in `Region::snapPositionX/Y`
-------------
PR: https://git.openjdk.org/jfx/pull/924
More information about the openjfx-dev
mailing list