The fix looks good to me.
Thanks,
Alexandr.
On 3/17/2017 8:19 AM, Sergey Bylokhov wrote:
No issues in the awt tests, but I decide to update the fix in place.
http://cr.openjdk.java.net/~serb/8160270/webrev.00/src/java.desktop/unix/classes/sun/awt/X11/XBaseMenuWindow.java.sdiff.html
<http://cr.openjdk.java.net/%7Eserb/8160270/webrev.00/src/java.desktop/unix/classes/sun/awt/X11/XBaseMenuWindow.java.sdiff.html>
One line was added to check that we access the native peers only for
HW components.
657 GraphicsConfiguration getCurrentGraphicsConfiguration() {
+658 Component hw = SunToolkit.getHeavyweightComponent(target);
659 XWindow peer = AWTAccessor.getComponentAccessor().getPeer(hw);
660 if (peer != null && peer.graphicsConfig != null) {
661 return peer.graphicsConfig;
662 }
663 return graphicsConfig;
664 }
If there are no objections I’ll push this version.
:
It all looks plausible .. so +1 assuming no problems with the tests.
-phil.
On 03/16/2017 12:20 PM, Alexandr Scherbatiy wrote:
The fix looks good to me.
Thanks,
Alexandr.
On 3/16/2017 7:44 PM, Sergey Bylokhov wrote:
Hello,
Please review the fix for jdk9.
This bug was caused by the change in JDK8137571 where we started to
use graphic configuration for each component to calculate the
preferred size on the screen.
The problem is that in the code we had a few assumptions that the
left-top corner of the screen is 0.0. Moreover for the Menu we do
not update the GC when the window is moved to another screen(I’ll
file a separate bug for this).
Fix description:
- Menu components now tries to take the graphics configuration from
the frame.
- All calculations are updated to take into account that the
left-top corner is screenBounds.x/y.
- The choice component now updates the GC of its popup when its own
gc is updated.
- I intentionally do not reformat the change to simplify review.
I have started the jck/jtreg tests, they are still in progress I'll
notify if some new issues will be found.
Bug: https://bugs.openjdk.java.net/browse/JDK-8160270
Webrev can be found at:
http://cr.openjdk.java.net/~serb/8160270/webrev.00
<http://cr.openjdk.java.net/%7Eserb/8160270/webrev.00>