src/macosx/classes/sun/awt/CGraphicsDevice.java
Print this page
*** 28,37 ****
--- 28,38 ----
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.Window;
import java.awt.AWTPermission;
import java.awt.DisplayMode;
+ import java.util.Objects;
import sun.java2d.opengl.CGLGraphicsConfig;
public final class CGraphicsDevice extends GraphicsDevice {
*** 120,135 ****
}
boolean fsSupported = isFullScreenSupported();
if (fsSupported && old != null) {
! // enter windowed mode (and restore original display mode)
! exitFullScreenExclusive(old);
if (originalMode != null) {
setDisplayMode(originalMode);
originalMode = null;
}
}
super.setFullScreenWindow(w);
if (fsSupported && w != null) {
--- 121,136 ----
}
boolean fsSupported = isFullScreenSupported();
if (fsSupported && old != null) {
! // restore original display mode and enter windowed mode.
if (originalMode != null) {
setDisplayMode(originalMode);
originalMode = null;
}
+ exitFullScreenExclusive(old);
}
super.setFullScreenWindow(w);
if (fsSupported && w != null) {
*** 184,200 ****
public boolean isDisplayChangeSupported() {
return true;
}
@Override
! public void setDisplayMode(DisplayMode dm) {
if (dm == null) {
throw new IllegalArgumentException("Invalid display mode");
}
! nativeSetDisplayMode(displayID, dm.getWidth(), dm.getHeight(), dm.getBitDepth(), dm.getRefreshRate());
! if (isFullScreenSupported() && getFullScreenWindow() != null) {
! getFullScreenWindow().setSize(dm.getWidth(), dm.getHeight());
}
}
@Override
public DisplayMode getDisplayMode() {
--- 185,208 ----
public boolean isDisplayChangeSupported() {
return true;
}
@Override
! public void setDisplayMode(final DisplayMode dm) {
if (dm == null) {
throw new IllegalArgumentException("Invalid display mode");
}
! if (!Objects.equals(dm, getDisplayMode())) {
! final Window w = getFullScreenWindow();
! if (w != null) {
! exitFullScreenExclusive(w);
! }
! nativeSetDisplayMode(displayID, dm.getWidth(), dm.getHeight(),
! dm.getBitDepth(), dm.getRefreshRate());
! if (isFullScreenSupported() && w != null) {
! enterFullScreenExclusive(w);
! }
}
}
@Override
public DisplayMode getDisplayMode() {