This MR fixes several problems with the Eraser tool when it is used in the “Cut out from paths and shapes” mode (the middle toolbar button):
When the “Break apart” option is toggled on and the eraser stroke is entirely contained within the interior of a large solid shape, the eraser actually erases from the shape (amazing, I know).
In the aforementioned scenario, the erase operation no longer leaves behind spurious path objects along the eraser stroke. Taken together, these two new behaviours fix #3141 (closed).
When the “Break apart” option is on and the user quickly draws several repeated interior strokes of the kind described above, and the snapping global switch is turned off, Inkscape no longer crashes on a failed assertion, which resolves #2782 (closed).
When the Eraser touches a clone (a USE item), it no longer ignores it. Instead, it unlinks (“flattens”) the clone, turning it into an ordinary object and cut-erases from that object in the usual way.
These fixes wouldn't be possible without Osama's and Martin's work on the
Split Paths boolop – see !3738 (merged).