diff options
author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-25 20:58:13 +0000 |
---|---|---|
committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-25 20:58:13 +0000 |
commit | 8be4db36d1a72e6f4a25e891d56bb1e213586a2c (patch) | |
tree | 47bf146f4f42a0c5e1d493a32e405cf8e3712fcd /libjava/java/awt/GraphicsDevice.java | |
parent | 3b0f3ecbb33e183e50dad80618d6616cebbfe18f (diff) | |
download | ppe42-gcc-8be4db36d1a72e6f4a25e891d56bb1e213586a2c.tar.gz ppe42-gcc-8be4db36d1a72e6f4a25e891d56bb1e213586a2c.zip |
2005-04-25 Jeroen Frijters <jeroen@frijters.net>
* java/awt/GraphicsEnvironment.java
(localGraphicsEnvironment): New field.
(getLocalGraphicsEnvironment): Added support for java.awt.graphicsenv
property.
(isHeadless): Added support for java.awt.headless property.
(isHeadlessInstance): Call headless().
2005-04-25 Roman Kennke <roman@kennke.org>
* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
(getDisplayMode): Added. Returns the current display mode.
(isFullScreenSupported): Added.
* java/awt/GraphicsDevice.java
(setFullScreenWindow): Implemented a primitive fullscreen mode.
This resizes and relocates the fullscreen window so that it uses
the whole screen. This is not a fully accelerated fullscreen
exclusive mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98740 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/awt/GraphicsDevice.java')
-rw-r--r-- | libjava/java/awt/GraphicsDevice.java | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/libjava/java/awt/GraphicsDevice.java b/libjava/java/awt/GraphicsDevice.java index c01723356b3..55a80f23e62 100644 --- a/libjava/java/awt/GraphicsDevice.java +++ b/libjava/java/awt/GraphicsDevice.java @@ -64,6 +64,12 @@ public abstract class GraphicsDevice /** The current full-screen window, or null if there is none. */ private Window full_screen; + /** + * The bounds of the fullscreen window before it has been switched to full + * screen. + */ + private Rectangle fullScreenOldBounds; + /** The current display mode, or null if unknown. */ private DisplayMode mode; @@ -151,9 +157,9 @@ public abstract class GraphicsDevice * </ul><br> * If <code>isFullScreenSupported()</code> returns false, full-screen * exclusive mode is simulated by resizing the window to the size of the - * screen and positioning it at (0,0). - * - * XXX Not yet implemented in Classpath. + * screen and positioning it at (0,0). This is also what this method does. + * If a device supports real fullscreen mode then it should override this + * method as well as #isFullScreenSupported and #getFullScreenWindow. * * @param w the window to toggle * @see #isFullScreenSupported() @@ -164,11 +170,24 @@ public abstract class GraphicsDevice */ public synchronized void setFullScreenWindow(Window w) { + // Restore the previous window to normal mode and release the reference. if (full_screen != null) - ; // XXX Restore the previous window to normal mode. - full_screen = w; - // XXX If w != null, make it full-screen. - throw new Error("not implemented"); + { + full_screen.setBounds(fullScreenOldBounds); + } + + full_screen = null; + + // If w != null, make it full-screen. + if (w != null) + { + fullScreenOldBounds = w.getBounds(); + full_screen = w; + DisplayMode dMode = getDisplayMode(); + full_screen.setBounds(0, 0, dMode.getWidth(), dMode.getHeight()); + full_screen.requestFocus(); + full_screen.setLocationRelativeTo(null); + } } /** |