On Thu, 17 Dec 2020 19:30:17 GMT, Kevin Rushforth <k...@openjdk.org> wrote:
>> I've opted for the cache and check for screen scale solution, as I agree it >> presents less risks of leaked or missing listeners down the road. >> There's a slight unexpected drawback I've noticed, though, which is that the >> repaint for the affected Region does not seem to occur right away on moving >> the window to another screen, but only once the Region is interacted with >> (e.g. hovering the mouse over it). > > Your latest patch looks exactly like what I would expect. I need to do some > multi-screen testing on Windows with different scale factors. > >> ... the repaint for the affected Region does not seem to occur right away on >> moving the window to another screen, but only once the Region is interacted >> with (e.g. hovering the mouse over it). > > This seems like a different (and preexisting) bug then. I think we're up to > three follow-on issues if I haven't lost track: > > 1. Rendering a cached node doesn't match rendering it directly even when the > transform is unchanged. > 2. TextFlow: methods copied from Region have not picked up subsequent changes > in those methods > 3. Need to Render and layout scene out when scale changes (either when moving > to a screen with a different scale or when the scale changes as the result of > changing the setting of the current screen) I did some testing with your latest patch, and I don't see any problem when dragging a window between screens with different scales. It seems to be recalculating the cached insets and using them in layout as I would expect. Do you have a test case that shows the problem? ------------- PR: https://git.openjdk.java.net/jfx/pull/308