cancel method
Every cancel path (Escape, a switch to another tool, the layer's deactivate and dispose): the shape, the rings and the notice go, and the document's changes are no longer heard until the next event.
Implementation
@override
void cancel(ToolContext ctx) {
_detach();
_ringHover = false;
super.cancel(ctx);
}