Ticket #3910: lassoOnS-5389.patch

File lassoOnS-5389.patch, 3.1 KB (added by Cobra, 12 years ago)

updated version of akks' patch

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

     
    112112    public final SelectAction mapModeSelect;
    113113    private final MapMode mapModeDraw;
    114114    private final MapMode mapModeZoom;
     115    public final MapMode mapModeLassoSelect;
    115116
    116117    /**
    117118     * The panel list of all toggle dialog icons. To add new toggle dialog actions, use addToggleDialog
     
    159160        // toolbar
    160161        toolBarActions.setFloatable(false);
    161162        addMapMode(new IconToggleButton(mapModeSelect = new SelectAction(this)));
    162         addMapMode(new IconToggleButton(new LassoModeAction(), true));
     163        addMapMode(new IconToggleButton(mapModeLassoSelect = new LassoModeAction(), true));
    163164        addMapMode(new IconToggleButton(mapModeDraw = new DrawAction(this)));
    164165        addMapMode(new IconToggleButton(mapModeZoom = new ZoomAction(this)));
    165166        addMapMode(new IconToggleButton(new DeleteAction(this), true));
     
    361362            return false;
    362363
    363364        MapMode oldMapMode = this.mapMode;
    364         if (newMapMode == oldMapMode)
     365        if (newMapMode == oldMapMode) {
     366            newMapMode.reenterMode();
    365367            return true;
     368        }
    366369        if (oldMapMode != null) {
    367370            oldMapMode.exitMode();
    368371        }
  • src/org/openstreetmap/josm/actions/LassoModeAction.java

     
    3131        Main.map.mapModeSelect.exitMode();
    3232        super.exitMode();
    3333    }
     34   
     35    @Override
     36    public void reenterMode() {
     37        if (Main.map!=null)  Main.map.selectMapMode(Main.map.mapModeSelect);
     38    }
    3439}
  • src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

     
    195195        removeHighlighting();
    196196    }
    197197
     198    @Override
     199    public void reenterMode() {
     200        if (Main.map!=null)  Main.map.selectMapMode(Main.map.mapModeLassoSelect);
     201    }
     202   
    198203     /**
    199204     * This is called whenever the keyboard modifier status changes
    200205     */
  • src/org/openstreetmap/josm/actions/mapmode/MapMode.java

     
    5858        Main.map.mapView.resetCursor(this);
    5959    }
    6060
     61    /**
     62     * For optionlal overloading - called when action is repeated while mapmode is already active
     63     */
     64    public void reenterMode() {
     65    }
     66
    6167    protected void updateStatusLine() {
    6268        Main.map.statusLine.setHelpText(getModeHelpText());
    6369        Main.map.statusLine.repaint();