Ignore:
Timestamp:
2020-11-24T07:00:30+01:00 (5 years ago)
Author:
GerdP
Message:

fix #17196: Undo/Redo may change data in inactive layer

  • use separate stacks for each edit layer
  • show empty undo/redo stack when active layer isn't an edit layer
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java

    r17188 r17347  
    5151import org.openstreetmap.josm.gui.MainApplication;
    5252import org.openstreetmap.josm.gui.SideButton;
     53import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
     54import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    5355import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    5456import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     
    6365 * @since 94
    6466 */
    65 public class CommandStackDialog extends ToggleDialog implements CommandQueuePreciseListener {
     67public class CommandStackDialog extends ToggleDialog implements CommandQueuePreciseListener, ActiveLayerChangeListener {
    6668
    6769    private final DefaultTreeModel undoTreeModel = new DefaultTreeModel(new DefaultMutableTreeNode());
     
    145147        InputMapUtils.addEnterAction(undoTree, selectAndZoomAction);
    146148        InputMapUtils.addEnterAction(redoTree, selectAndZoomAction);
     149        MainApplication.getLayerManager().addActiveLayerChangeListener(this);
    147150    }
    148151
     
    553556        }
    554557    }
     558
     559    @Override
     560    public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
     561        hideNotify();
     562        showNotify();
     563    }
    555564}
Note: See TracChangeset for help on using the changeset viewer.