Index: src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- src/org/openstreetmap/josm/gui/MainMenu.java	(revision 1497)
+++ src/org/openstreetmap/josm/gui/MainMenu.java	(working copy)
@@ -14,6 +14,12 @@
 import javax.swing.JMenuItem;
 import javax.swing.KeyStroke;
 
+/* For the fullscreen action */
+import java.awt.Frame;
+import java.awt.GraphicsEnvironment;
+import java.awt.GraphicsDevice;
+import org.openstreetmap.josm.tools.PlatformHookUnixoid;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.AboutAction;
 import org.openstreetmap.josm.actions.AddNodeAction;
@@ -228,6 +234,38 @@
             JosmAction autoScaleAction = new AutoScaleAction(mode);
             add(viewMenu, autoScaleAction);
         }
+
+        //
+        // Full Screen action
+        //
+        final GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+        final GraphicsDevice gd = ge.getDefaultScreenDevice();
+        // See http://lists.openstreetmap.org/pipermail/josm-dev/2009-March/002659.html for why
+        final boolean onUnix = Main.platform instanceof PlatformHookUnixoid;
+        final boolean FullScreenSupported = gd.isFullScreenSupported();
+        final boolean willFullScreen = onUnix && FullScreenSupported;
+
+        if (willFullScreen) {
+            final JCheckBoxMenuItem fullscreen = new JCheckBoxMenuItem(tr("Full Screen"));
+            fullscreen.setSelected(Main.pref.getBoolean("draw.fullscreen", false));
+            fullscreen.setAccelerator(Shortcut.registerShortcut("menu:view:fullscreen", tr("Toggle Full Screen view"),
+                    KeyEvent.VK_F11, Shortcut.GROUP_DIRECT).getKeyStroke());
+
+            fullscreen.addActionListener(new ActionListener() {
+                public void actionPerformed(ActionEvent ev) {
+                    Main.pref.put("draw.fullscreen", fullscreen.isSelected());
+
+                    if (Main.pref.getBoolean("draw.fullscreen")) {
+                        Frame frame = (Frame)Main.parent;
+                        gd.setFullScreenWindow(frame);
+                    } else {
+                        gd.setFullScreenWindow(null);
+                    }
+                }
+            });
+            viewMenu.addSeparator();
+            viewMenu.add(fullscreen);
+        }
         add(viewMenu, KeyEvent.VK_V, "view");
 
         add(toolsMenu, splitWay);
