saveShape() can save shapes below other shapes, and avoid triggering the event