Ticket #22065: 22065.patch

File 22065.patch, 4.1 KB (added by taylor.smock, 4 years ago)
  • src/org/openstreetmap/josm/actions/mapmode/MapMode.java

    diff --git a/src/org/openstreetmap/josm/actions/mapmode/MapMode.java b/src/org/openstreetmap/josm/actions/mapmode/MapMode.java
    index 3ad0d71e27..9d3e6eaf9b 100644
    a b public abstract class MapMode extends JosmAction implements MouseListener, Mouse  
    3333    protected boolean ctrl;
    3434    protected boolean alt;
    3535    protected boolean shift;
     36    /** @since xxx */
     37    protected boolean meta;
    3638
    3739    /**
    3840     * Constructor for mapmodes without a menu
    public abstract class MapMode extends JosmAction implements MouseListener, Mouse  
    154156    }
    155157
    156158    /**
    157      * Update internal ctrl, alt, shift mask from given extended modifiers mask.
     159     * Update internal ctrl, alt, shift, meta mask from given extended modifiers mask.
    158160     * @param modifiers event extended modifiers mask
    159161     * @since 12517
    160162     */
    public abstract class MapMode extends JosmAction implements MouseListener, Mouse  
    162164        ctrl = (modifiers & InputEvent.CTRL_DOWN_MASK) != 0;
    163165        alt = (modifiers & (InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK)) != 0;
    164166        shift = (modifiers & InputEvent.SHIFT_DOWN_MASK) != 0;
     167        meta = (modifiers & InputEvent.META_DOWN_MASK) != 0;
    165168    }
    166169
    167170    /**
  • src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

    diff --git a/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java b/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
    index 6983b3d585..64526b99eb 100644
    a b public class SelectAction extends MapMode implements ModifierExListener, KeyPres  
    346346            if (lassoMode) {
    347347                c = "lasso";
    348348            } else {
    349                 c = "rect" + (shift ? "_add" : (ctrl && !PlatformManager.isPlatformOsx() ? "_rm" : ""));
     349                if (shift) {
     350                    c = "rect_add";
     351                } else if ((ctrl && !PlatformManager.isPlatformOsx()) || (meta && PlatformManager.isPlatformOsx())) {
     352                    c = "rect_rm";
     353                } else {
     354                    c = "rect";
     355                }
    350356            }
    351357            break;
    352358        }
    public class SelectAction extends MapMode implements ModifierExListener, KeyPres  
    988994            shift |= ds.getSelected().containsAll(prims);
    989995        }
    990996
    991         if (ctrl) {
     997        if ((ctrl && !PlatformManager.isPlatformOsx()) || (meta && PlatformManager.isPlatformOsx())) {
    992998            // Ctrl on an item toggles its selection status,
    993999            // but Ctrl on an *area* just clears those items
    9941000            // out of the selection.
  • src/org/openstreetmap/josm/gui/SelectionManager.java

    diff --git a/src/org/openstreetmap/josm/gui/SelectionManager.java b/src/org/openstreetmap/josm/gui/SelectionManager.java
    index 602f4491f9..0f9e4a0e92 100644
    a b import org.openstreetmap.josm.data.osm.Way;  
    2626import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
    2727import org.openstreetmap.josm.gui.layer.AbstractMapViewPaintable;
    2828import org.openstreetmap.josm.tools.ColorHelper;
     29import org.openstreetmap.josm.tools.PlatformManager;
    2930
    3031/**
    3132 * Manages the selection of a rectangle or a lasso loop. Listening to left and right mouse button
    public class SelectionManager implements MouseListener, MouseMotionListener, Pro  
    185186        if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() > 1 && MainApplication.getLayerManager().getActiveDataSet() != null) {
    186187            SelectByInternalPointAction.performSelection(MainApplication.getMap().mapView.getEastNorth(e.getX(), e.getY()),
    187188                    (e.getModifiersEx() & MouseEvent.SHIFT_DOWN_MASK) != 0,
    188                     (e.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK) != 0);
     189                    (e.getModifiersEx() & PlatformManager.getPlatform().getMenuShortcutKeyMaskEx()) != 0);
    189190        } else if (e.getButton() == MouseEvent.BUTTON1) {
    190191            mousePosStart = mousePos = e.getPoint();
    191192