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,11 @@
 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.Main;
 import org.openstreetmap.josm.actions.AboutAction;
 import org.openstreetmap.josm.actions.AddNodeAction;
@@ -228,6 +233,45 @@
             JosmAction autoScaleAction = new AutoScaleAction(mode);
             add(viewMenu, autoScaleAction);
         }
+
+        /// Fullscreen
+        String os = System.getProperty("os.name");
+        // From determinePlatformHook() in Main.java, see
+        // http://lists.openstreetmap.org/pipermail/josm-dev/2009-March/002659.html
+        // for why I'm doing this.
+        boolean canFullScreen = (os.equals("Linux") || os.equals("Solaris") ||
+                                 os.equals("SunOS") || os.equals("AIX") ||
+                                 os.equals("FreeBSD") || os.equals("NetBSD") || os.equals("OpenBSD"));
+
+
+        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;
+
+                    if (Main.pref.getBoolean("draw.fullscreen")) {
+                        if (gd.isFullScreenSupported()) {
+                            gd.setFullScreenWindow(frame);
+                        }
+                    } else {
+                        if (gd.isFullScreenSupported())
+                            gd.setFullScreenWindow(null);
+                    }
+                }
+            });
+            viewMenu.addSeparator();
+            viewMenu.add(fullscreen);
+        }
         add(viewMenu, KeyEvent.VK_V, "view");
 
         add(toolsMenu, splitWay);
