Index: src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- src/org/openstreetmap/josm/gui/MainMenu.java	(revision 1479)
+++ 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,40 @@
             JosmAction autoScaleAction = new AutoScaleAction(mode);
             add(viewMenu, autoScaleAction);
         }
+
+        /// Fullscreen
+        String os = System.getProperty("os.name");
+        // See http://lists.openstreetmap.org/pipermail/josm-dev/2009-March/002659.html for why I'm doing this
+        boolean canFullScreen = Main.platform instanceof PlatformHookUnixoid;
+
+        if (canFullScreen) {
+            // TODO move code to an "action" like the others?
+            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());
+
+                    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+                    GraphicsDevice gd = ge.getDefaultScreenDevice();
+
+                    Frame frame = (Frame)Main.parent;
+                    boolean FullScreenSupported = gd.isFullScreenSupported();
+
+                    if (Main.pref.getBoolean("draw.fullscreen")) {
+                        if (FullScreenSupported)
+                            gd.setFullScreenWindow(frame);
+                    } else {
+                        if (FullScreenSupported)
+                            gd.setFullScreenWindow(null);
+                    }
+                }
+            });
+            viewMenu.addSeparator();
+            viewMenu.add(fullscreen);
+        }
         add(viewMenu, KeyEvent.VK_V, "view");
 
         add(toolsMenu, splitWay);
