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
|
| 33 | 33 | protected boolean ctrl; |
| 34 | 34 | protected boolean alt; |
| 35 | 35 | protected boolean shift; |
| | 36 | /** @since xxx */ |
| | 37 | protected boolean meta; |
| 36 | 38 | |
| 37 | 39 | /** |
| 38 | 40 | * Constructor for mapmodes without a menu |
| … |
… |
public abstract class MapMode extends JosmAction implements MouseListener, Mouse
|
| 154 | 156 | } |
| 155 | 157 | |
| 156 | 158 | /** |
| 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. |
| 158 | 160 | * @param modifiers event extended modifiers mask |
| 159 | 161 | * @since 12517 |
| 160 | 162 | */ |
| … |
… |
public abstract class MapMode extends JosmAction implements MouseListener, Mouse
|
| 162 | 164 | ctrl = (modifiers & InputEvent.CTRL_DOWN_MASK) != 0; |
| 163 | 165 | alt = (modifiers & (InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK)) != 0; |
| 164 | 166 | shift = (modifiers & InputEvent.SHIFT_DOWN_MASK) != 0; |
| | 167 | meta = (modifiers & InputEvent.META_DOWN_MASK) != 0; |
| 165 | 168 | } |
| 166 | 169 | |
| 167 | 170 | /** |
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
|
| 346 | 346 | if (lassoMode) { |
| 347 | 347 | c = "lasso"; |
| 348 | 348 | } 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 | } |
| 350 | 356 | } |
| 351 | 357 | break; |
| 352 | 358 | } |
| … |
… |
public class SelectAction extends MapMode implements ModifierExListener, KeyPres
|
| 988 | 994 | shift |= ds.getSelected().containsAll(prims); |
| 989 | 995 | } |
| 990 | 996 | |
| 991 | | if (ctrl) { |
| | 997 | if ((ctrl && !PlatformManager.isPlatformOsx()) || (meta && PlatformManager.isPlatformOsx())) { |
| 992 | 998 | // Ctrl on an item toggles its selection status, |
| 993 | 999 | // but Ctrl on an *area* just clears those items |
| 994 | 1000 | // out of the selection. |
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;
|
| 26 | 26 | import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors; |
| 27 | 27 | import org.openstreetmap.josm.gui.layer.AbstractMapViewPaintable; |
| 28 | 28 | import org.openstreetmap.josm.tools.ColorHelper; |
| | 29 | import org.openstreetmap.josm.tools.PlatformManager; |
| 29 | 30 | |
| 30 | 31 | /** |
| 31 | 32 | * Manages the selection of a rectangle or a lasso loop. Listening to left and right mouse button |
| … |
… |
public class SelectionManager implements MouseListener, MouseMotionListener, Pro
|
| 185 | 186 | if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() > 1 && MainApplication.getLayerManager().getActiveDataSet() != null) { |
| 186 | 187 | SelectByInternalPointAction.performSelection(MainApplication.getMap().mapView.getEastNorth(e.getX(), e.getY()), |
| 187 | 188 | (e.getModifiersEx() & MouseEvent.SHIFT_DOWN_MASK) != 0, |
| 188 | | (e.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK) != 0); |
| | 189 | (e.getModifiersEx() & PlatformManager.getPlatform().getMenuShortcutKeyMaskEx()) != 0); |
| 189 | 190 | } else if (e.getButton() == MouseEvent.BUTTON1) { |
| 190 | 191 | mousePosStart = mousePos = e.getPoint(); |
| 191 | 192 | |