# HG changeset patch # User anashaty # Date 1424192175 -10800 # Node ID 751f31639710c04ea5f92865873c46eac386da78 # Parent 0989118f6e697a32c7ebfadae57511fa4e51b57d 8072069: Toolkit.getScreenInsets() doesn't update if insets change Reviewed-by: serb, azvegint diff -r 0989118f6e69 -r 751f31639710 jdk/src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java --- a/jdk/src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java Mon Feb 16 20:01:17 2015 +0300 +++ b/jdk/src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java Tue Feb 17 19:56:15 2015 +0300 @@ -43,7 +43,6 @@ * therefore methods, which is using this id should be ready to it. */ private volatile int displayID; - private volatile Insets screenInsets; private volatile double xResolution; private volatile double yResolution; private volatile int scale; @@ -120,7 +119,13 @@ } public Insets getScreenInsets() { - return screenInsets; + // the insets are queried synchronously and are not cached + // since there are no Quartz or Cocoa means to receive notifications + // on insets changes (e.g. when the Dock is resized): + // the existing CGDisplayReconfigurationCallBack is not notified + // as well as the NSApplicationDidChangeScreenParametersNotification + // is fired on the Dock location changes only + return nativeGetScreenInsets(displayID); } public int getScaleFactor() { @@ -135,7 +140,6 @@ public void displayChanged() { xResolution = nativeGetXResolution(displayID); yResolution = nativeGetYResolution(displayID); - screenInsets = nativeGetScreenInsets(displayID); scale = (int) nativeGetScaleFactor(displayID); //TODO configs/fullscreenWindow/modes? }