Hi Nakul,
the fix looks good to me too.
Thanks,
Alexander.
On 03/09/2015 09:48 PM, Nakul Natu wrote:
Thank you Sergey! Can anyone else also review this please?
Nakul
On 3/9/15, 8:05 AM, Sergey Bylokhov wrote:
Hi, Nakul.
The fix looks good.
05.03.15 14:26, Nakul Natu wrote:
Hi Sergey and all,
Updated webrev with suggested changes and testcase.
http://cr.openjdk.java.net/~van/8066436/webrev.01/
Regards,
Nakul
On 3/4/15, 5:17 AM, Sergey Bylokhov wrote:
Hi, Nakul.
Thanks for the fix.
A few notes:
- Please remove the bugid information from the comment since we
have mercurial history for such notes.
- I suppose that the comment can be shorter, like this: "We need
an up to date size of the peer, so we flush the native events to be
sure that there are no setBounds requests in the queue."
- Can you provide a test case for this bug, even if you cannot
reproduce it on your local system, you can write a test, which will
fail on the users system.
On 02.03.2015 22:18, Nakul Natu wrote:
Hello,
Please review the fix for JDK 9.
CPlatformWindow set bounds using setBounds() which calls native
function nativeNSSetWindowBounds() -> calls the OSX function.
After that ox callbacks to java using deliverMoveresizeEvent()
where the peer or window associated with native window is notified
of change of bounds.
In maximize() we need peer’s bound which are saved as normalBounds
to use them to unmaximize.
The problem
1. Customer creates window where the size width height is (1, 1)
2. setSize call is made (600,900) which starts the setBounds
process described earlier
3. setExtendedState(MAXIMIZED) is called which calls maximize().
But the callback for deliverMoveresizeEvent() has not yet
processed and the the bounds we get are earlier (1,1).
4. Window is maximized.
5. Now when we try to unmaximize or iconify the window the size is
set to (1,1) and we can’t see the window.
Even if we are using the bounds which are available (as the event
processing is asynchronous) this can cause lot of problems as the
window just disappears. Adding LWCToolkit.flushNativeSelectors();
just before saving the bounds can get us the correct bounds which
we are expecting.
Bug : https://bugs.openjdk.java.net/browse/JDK-8066436
Webrev: http://cr.openjdk.java.net/~van/8066436/webrev.00/
Regards,
Nakul
--
Best regards, Sergey.
--
Best regards, Sergey.