diff --git a/src/Commands/AddSurfaceCmd.cpp b/src/Commands/AddSurfaceCmd.cpp index 05b8756..c81d19c 100644 --- a/src/Commands/AddSurfaceCmd.cpp +++ b/src/Commands/AddSurfaceCmd.cpp @@ -6,16 +6,20 @@ namespace piMapper { AddSurfaceCmd::AddSurfaceCmd(SurfaceManager * sm, SurfaceType surfaceType){ _surfaceManager = sm; _surfaceType = surfaceType; + _selectedSurface = 0; } void AddSurfaceCmd::exec(){ + _selectedSurface = _surfaceManager->getSelectedSurface(); BaseSurface * surface = SurfaceFactory::instance()->createSurface(_surfaceType); _surfaceManager->addSurface(surface); + _surfaceManager->selectSurface(surface); } void AddSurfaceCmd::undo(){ ofLogNotice("AddSurfaceCmd", "undo"); _surfaceManager->removeSurface(); + _surfaceManager->selectSurface(_selectedSurface); } } // namespace piMapper diff --git a/src/Commands/AddSurfaceCmd.h b/src/Commands/AddSurfaceCmd.h index a321cfd..83d2c6f 100644 --- a/src/Commands/AddSurfaceCmd.h +++ b/src/Commands/AddSurfaceCmd.h @@ -21,6 +21,7 @@ class AddSurfaceCmd : public BaseUndoCmd { private: SurfaceManager * _surfaceManager; SurfaceType _surfaceType; + BaseSurface * _selectedSurface; };