Index: /trunk/src/org/openstreetmap/josm/actions/HelpAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1497)
+++ /trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1498)
@@ -134,6 +134,10 @@
         if (c instanceof Helpful)
             return ((Helpful)c).helpTopic();
-        if (c instanceof JMenu)
-            return "Menu/"+((JMenu)c).getText();
+        if (c instanceof JMenu) {
+            JMenu b = (JMenu)c;
+            if (b.getClientProperty("help") != null)
+                return (String)b.getClientProperty("help");
+            return "Menu/"+b.getText();
+        }
         if (c instanceof AbstractButton) {
             AbstractButton b = (AbstractButton)c;
@@ -163,9 +167,13 @@
      */
     public void setHelpUrl(String url) {
-        int i = url.lastIndexOf("/")+1;
-        String title = url.substring(i);
-        if(!title.startsWith(languageCode) && !languageCode.equals("En:"))
-            title = languageCode + title;
-        String langurl = url.substring(0, i) + title;
+        int i = url.indexOf("/wiki/Help/")+6;
+        String langurl = url;
+        if(i > 0)
+        {
+            String title = url.substring(i);
+            if(!title.startsWith(languageCode) && !languageCode.equals("En:"))
+                title = languageCode + title;
+            langurl = url.substring(0, i) + title;
+        }
         boolean loaded = false;
         if(!langurl.equals(this.url) && !langurl.equals(url))
Index: /trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 1497)
+++ /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 1498)
@@ -3,4 +3,5 @@
 package org.openstreetmap.josm.gui;
 
+import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
@@ -14,4 +15,10 @@
 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;
@@ -135,11 +142,12 @@
     public final JosmAction statusreport = new ShowStatusReportAction();
 
-    public final JMenu fileMenu = new JMenu(tr("File"));
-    public final JMenu editMenu = new JMenu(tr("Edit"));
-    public final JMenu viewMenu = new JMenu(tr("View"));
-    public final JMenu toolsMenu = new JMenu(tr("Tools"));
-    public final JMenu audioMenu = new JMenu(tr("Audio"));
-    public final JMenu presetsMenu = new JMenu(tr("Presets"));
-    public final JMenu helpMenu = new JMenu(tr("Help"));
+    public final JMenu fileMenu = addMenu(marktr("File"), KeyEvent.VK_F, 0);
+    public final JMenu editMenu = addMenu(marktr("Edit"), KeyEvent.VK_E, 1);
+    public final JMenu viewMenu = addMenu(marktr("View"), KeyEvent.VK_V, 2);
+    public final JMenu toolsMenu = addMenu(marktr("Tools"), KeyEvent.VK_T, 3);
+    public final JMenu presetsMenu = addMenu(marktr("Presets"), KeyEvent.VK_P, 4);
+    public JMenu audioMenu = null;
+    public final JMenu helpMenu = addMenu(marktr("Help"), KeyEvent.VK_H, 5);
+    public final int defaultMenuPos = 5;
 
     /**
@@ -160,14 +168,12 @@
         return menuitem;
     }
-
-    /**
-     * Add a menu to the main menu.
-     *
-     * This method handles all the shortcut handling.
-     */
-    public void add(JMenu menu, int mnemonicKey, String shortName) {
-        Shortcut.registerShortcut("menu:" + shortName, tr("Menu: {0}", menu.getText()), mnemonicKey,
+    public JMenu addMenu(String name, int mnemonicKey, int position)
+    {
+        JMenu menu = new JMenu(tr(name));
+        Shortcut.registerShortcut("menu:" + name, tr("Menu: {0}", tr(name)), mnemonicKey,
                 Shortcut.GROUP_MNEMONIC).setMnemonic(menu);
-        add(menu);
+        add(menu, position);
+        menu.putClientProperty("help", "Menu/"+name);
+        return menu;
     }
 
@@ -188,5 +194,4 @@
         fileMenu.addSeparator();
         add(fileMenu, exit);
-        add(fileMenu, KeyEvent.VK_F, "file");
 
         add(editMenu, undo);
@@ -205,5 +210,4 @@
         editMenu.addSeparator();
         add(editMenu, preferences);
-        add(editMenu, KeyEvent.VK_E, "edit");
 
         // TODO move code to an "action" like the others?
@@ -229,5 +233,31 @@
             add(viewMenu, autoScaleAction);
         }
-        add(viewMenu, KeyEvent.VK_V, "view");
+
+        //
+        // Full Screen action
+        //
+        final GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
+
+        if (Main.platform instanceof PlatformHookUnixoid && gd.isFullScreenSupported()) {
+            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(toolsMenu, splitWay);
@@ -249,9 +279,7 @@
         toolsMenu.addSeparator();
         add(toolsMenu, historyinfo);
-        add(toolsMenu, KeyEvent.VK_T, "tools");
-
-        add(presetsMenu, KeyEvent.VK_P, "presets");
 
         if (!Main.pref.getBoolean("audio.menuinvisible", false)) {
+            audioMenu = addMenu(marktr("Audio"), KeyEvent.VK_A, 5);
             add(audioMenu, audioPlayPause);
             add(audioMenu, audioNext);
@@ -261,23 +289,12 @@
             add(audioMenu, audioSlower);
             add(audioMenu, audioFaster);
-            add(audioMenu, KeyEvent.VK_A, "audio");
         }
 
-		/* TODO: Anyone really using this feature? */
-        /*JMenuItem check = new JMenuItem("DEBUG: Check Dataset");
-        check.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                DataSetChecker.check();
-            }
-        });
-        helpMenu.add(check);*/
-        
         helpMenu.add(statusreport);
-        
+
         current = helpMenu.add(help); // FIXME why is help not a JosmAction?
         current.setAccelerator(Shortcut.registerShortcut("system:help", tr("Help"), KeyEvent.VK_F1,
                 Shortcut.GROUP_DIRECT).getKeyStroke());
         add(helpMenu, about);
-        add(helpMenu, KeyEvent.VK_H, "help");
     }
 }
