I'm working on implementing shape translation by dragging a selection. The program runs without crashing right now, and the behavior is good if the selection is only one shape. The program fails when more than one shape is selected. Working on fixing that now.
Moving a selection around on the canvas is now fully implemented and (hopefully) bug free.