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/~serb/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 >>> >> >