protected override void OnKeyUpCore(MapViewKeyEventArgs k)
        {
            _msg.VerboseDebug("OnKeyUpCore");

            if (IsShiftKey(k.Key))
            {
                _intermittentSelectionPhase = false;

                // TODO: Maintain selection by using SelectionChanged? Event?
                IList <Feature> selection =
                    SelectionUtils.GetSelectedFeatures(ActiveMapView).ToList();

                if (CanUseSelection(selection))
                {
                    StartSketchPhase();

                    if (_editSketchBackup != null)
                    {
                        ActiveMapView.SetCurrentSketchAsync(_editSketchBackup);

                        // This puts back the edit operations in the undo stack, but when clicking on the top one, the sketch
                        // is cleared and undoing any previous operation has no effect any more.
                        ActiveMapView.Map.OperationManager.ClearUndoCategory("SketchOperations");

                        if (_sketchOperations != null)
                        {
                            foreach (Operation operation in _sketchOperations)
                            {
                                ActiveMapView.Map.OperationManager.AddUndoOperation(operation);
                            }
                        }
                    }
                }

                _editSketchBackup = null;
            }

            if (k.Key == _keyRestorePrevious)
            {
                RestorePreviousSketch();
            }
        }