Hi Sergey,

According to your fix replacSurfaceData() and updateMinimumSize() are invoked 
only if the graphics device has been changed or the peer has been resized:

>  734         if (pResized || isNewDevice) {
>  735             replaceSurfaceData();
>  736             updateMinimumSize();
>  737         }

Shall we also check tResized in the statement above, (i.e. take into account 
changes in the target's size)?

Thanks,
Dmitry


> On 16 May 2018, at 19:23, Sergey Bylokhov <sergey.bylok...@oracle.com> wrote:
> 
> Hello.
> Please review the fix for jdk11.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8201364
> Webrev: http://cr.openjdk.java.net/~serb/8201364/webrev.00
> 
> Description:
> The bug occurs when the application tries to set location of the window to 
> the point, where the window cannot be placed. For example if this is a place 
> where menubar, dock, taskbar etc are located.
> 
> We have a bug in our logic which updates the state of the component when the 
> native window is moved. Usually we have these steps:
> 1 The app set bounds for window to (100,100).
> 2 The native window is moved to 100,100 or to any other location like 90,90
> 3 We get a notification from native and update the state of the peer to 
> (100,100/90,90) and then update the component using the up-to-date native 
> bounds(instead of bounds which were set by the app at step 1)
> 
> When the bug is reproduced we have this steps:
> 1 The app set bounds for window to (0,0).
> 2 The native window is moved to 20,20, because 0,0 is a place for menubar.
> 3 We get a notification from native and update the state of the peer to 
> (20,20) and then update the component using the up-to-date native 
> bounds(instead of bounds which were set by the app at step 1)
> 4 The app set bounds for the window to (0,0) again.
> 5 The native window is NOT moved, but still located at 20,20.
> 6 Our code assume that the native window was not moved and because of that we 
> do not update the bounds in the component(which were set at step 4)
> 
> Note that this fix is for macOS, but the same bug exists on linux/solaris as 
> well. I'll create a separate bug and will add it to the problem list in this 
> fix.
> 
> 
> -- 
> Best regards, Sergey.

Reply via email to