Ticket #7045: x7045.diff

File x7045.diff, 1.3 KB (added by Larry0ua, 19 months ago)

patch to fix the bug

  • MapFrame.java

     
    485485    public void activeLayerChange(Layer oldLayer, Layer newLayer) { 
    486486        boolean modeChanged = false; 
    487487        if (mapMode == null || !mapMode.layerIsSupported(newLayer)) { 
    488             MapMode newMapMode = lastMapMode.get(newLayer); 
     488            MapMode newMapMode = getLastMapMode(newLayer); 
    489489            modeChanged = newMapMode != mapMode; 
    490490            if (newMapMode != null) { 
    491491                selectMapMode(newMapMode, newLayer); // it would be nice to select first supported mode when layer is first selected, but it don't work well with for example editgpx layer 
     
    502502        Main.map.mapView.preferenceChanged(null); 
    503503    } 
    504504 
     505    private MapMode getLastMapMode(Layer newLayer) { 
     506        MapMode mode = lastMapMode.get(newLayer); 
     507        if (mode == null) { 
     508            // if no action is selected - try to select default action 
     509            Action defaultMode = getDefaultButtonAction(); 
     510            if (defaultMode instanceof MapMode & ((MapMode)defaultMode).layerIsSupported(newLayer)) { 
     511                mode = (MapMode) defaultMode; 
     512            } 
     513        } 
     514        return mode; 
     515    } 
     516 
    505517    @Override 
    506518    public void layerAdded(Layer newLayer) { } 
    507519