Ticket #7045: x7045.diff
| File x7045.diff, 1.3 KB (added by , 14 years ago) |
|---|
-
MapFrame.java
485 485 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 486 486 boolean modeChanged = false; 487 487 if (mapMode == null || !mapMode.layerIsSupported(newLayer)) { 488 MapMode newMapMode = lastMapMode.get(newLayer);488 MapMode newMapMode = getLastMapMode(newLayer); 489 489 modeChanged = newMapMode != mapMode; 490 490 if (newMapMode != null) { 491 491 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 … … 502 502 Main.map.mapView.preferenceChanged(null); 503 503 } 504 504 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 505 517 @Override 506 518 public void layerAdded(Layer newLayer) { } 507 519
