Currently, many small actions are created, which leads to annoyingly many undo steps.
The underlying technical issue is that GuiLabs.Undo does not allow any merging logic of transactions. So either we need to somehow introspect the last transaction and mutate it manually, or maybe only record the transaction when the dragging finishes, which may be unreliable. Not sure :(