Ticket #2279: FullScreen-3.patch

File FullScreen-3.patch, 2.4 KB (added by avarab@…, 17 years ago)

Only add "Full Screen" to view menu if on Unix && gd.isFullScreenSupported()

  • src/org/openstreetmap/josm/gui/MainMenu.java

     
    1414import javax.swing.JMenuItem;
    1515import javax.swing.KeyStroke;
    1616
     17/* For the fullscreen action */
     18import java.awt.Frame;
     19import java.awt.GraphicsEnvironment;
     20import java.awt.GraphicsDevice;
     21import org.openstreetmap.josm.tools.PlatformHookUnixoid;
     22
    1723import org.openstreetmap.josm.Main;
    1824import org.openstreetmap.josm.actions.AboutAction;
    1925import org.openstreetmap.josm.actions.AddNodeAction;
     
    228234            JosmAction autoScaleAction = new AutoScaleAction(mode);
    229235            add(viewMenu, autoScaleAction);
    230236        }
     237
     238        //
     239        // Full Screen action
     240        //
     241        final GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
     242        final GraphicsDevice gd = ge.getDefaultScreenDevice();
     243        // See http://lists.openstreetmap.org/pipermail/josm-dev/2009-March/002659.html for why
     244        final boolean onUnix = Main.platform instanceof PlatformHookUnixoid;
     245        final boolean FullScreenSupported = gd.isFullScreenSupported();
     246        final boolean willFullScreen = onUnix && FullScreenSupported;
     247
     248        if (willFullScreen) {
     249            final JCheckBoxMenuItem fullscreen = new JCheckBoxMenuItem(tr("Full Screen"));
     250            fullscreen.setSelected(Main.pref.getBoolean("draw.fullscreen", false));
     251            fullscreen.setAccelerator(Shortcut.registerShortcut("menu:view:fullscreen", tr("Toggle Full Screen view"),
     252                    KeyEvent.VK_F11, Shortcut.GROUP_DIRECT).getKeyStroke());
     253
     254            fullscreen.addActionListener(new ActionListener() {
     255                public void actionPerformed(ActionEvent ev) {
     256                    Main.pref.put("draw.fullscreen", fullscreen.isSelected());
     257
     258                    if (Main.pref.getBoolean("draw.fullscreen")) {
     259                        Frame frame = (Frame)Main.parent;
     260                        gd.setFullScreenWindow(frame);
     261                    } else {
     262                        gd.setFullScreenWindow(null);
     263                    }
     264                }
     265            });
     266            viewMenu.addSeparator();
     267            viewMenu.add(fullscreen);
     268        }
    231269        add(viewMenu, KeyEvent.VK_V, "view");
    232270
    233271        add(toolsMenu, splitWay);