+1

--
Thanks,
Alexander.

On 02/08/2017 07:59 PM, Sergey Bylokhov wrote:
Looks fine.

  Hello,

  Could you review the updated fix:
    http://cr.openjdk.java.net/~alexsch/8147440/webrev.03

  - InvokeFunction is used to call the _WindowDPIChange in the AWT Window on 
native level.
  - WWindowPeer.windowDPIChange(...) is called only if the previous device 
screen is different from the new one.

Thanks,
Alexandr.

On 2/3/2017 9:32 PM, Sergey Bylokhov wrote:
Hi, Alex.
Is it intentional that «WindowDPIChange» can be called twice in some cases:
First:  CheckIfOnNewScreen()-> 
draggedToNewScreen->displayChanged()->checkDPIChange(newDev)
Second:  CheckIfOnNewScreen()->WindowDPIChange(prevScrn, curScrn);

I am not sure but it looks like they can be executed in parallel, because the 
first case will be called on EDT, and the second will be called on toolkit.

Hello,

Could you review the updated fix:
  http://cr.openjdk.java.net/~alexsch/8147440/webrev.02

  - changing window size according to DPI when a window is moved from one 
display to another is added
  - window size updating is moved to the native side

  Thanks,
  Alexandr.

On 10/25/2016 5:32 PM, Sergey Bylokhov wrote:
On 25.10.16 14:11, Alexandr Scherbatiy wrote:
  Could you review the updated fix:
    http://cr.openjdk.java.net/~alexsch/8147440/webrev.01/
  - an undecorated frame does not set WWindowPeer.sysX/Y/W,H values so
the fix is updated to retrieve a window bounds form the target
Why this fields is not updated for undecorated frame? We should carefully use 
target here, on what thread this callback is executed?

Can you also check the situation when on multi-monitor configuration you will move the window 
from one screen to another(both screens should have different scale). Is it possible that you 
will get updateGC -> then you call setBounds -> increase the size of window -> this will 
move the window to other screen->updateGC-> setBounds->decrease the size of the window, 
etc?


On 3/21/2016 11:33 PM, Alexandr Scherbatiy wrote:
On 2/10/2016 5:32 AM, Sergey Bylokhov wrote:
On 05.02.16 10:52, Alexandr Scherbatiy wrote:

   The first approach is to rescale only frame size on native level so
     newNativeWindow.size = newScale *  javaWindow.size
What location will be in this approach?
    The idea was to update WComponentPeer.setBounds(x,y, w, h) method
that it sets only size for the op=SET_BOUNDS on the native level.
    In this case the native window location and java window location
will not be changed.
    However, the relation between newNativeWindow.location and
javaWindow.location will use the old scale factor instead the new one.

Does the native app work in the similar way(changes the size only)?
    Yes. The native application changes their size but leaves the
location the same.

  Thanks,
  Alexandr.

   This allows to leave the nativeWindow.location unchanged but the
rule
     nativeWindow.location = newScale * javaWindow.location
   will be broken in this case.

   The proposed fix explicitly rescales javaWindow.location in
WWindowPeer so
   nativeWindow.location = prevScale * prevJavaWindow.location =
newScale * newJavaWindow.location

  Thanks,
  Alexandr.


Reply via email to