ve.IndentationAction
* Fix incompatibility with working with multiple nodes by using surface fragments
* Bug was caused by unindent causing rebuilding, which for all groups other than the first meant their nodes were detached and broken
ve.ListAction
* Employ unindent in a loop to remove all list levels
This is all still a bit hacked together, the use of surface fragments saved us this time, but we need to refactor this code. Badly. Next year.
Change-Id: Idddef35230b04d64cf8338d53bbab730fadec2fc
Moved implementation of all the tools into a reusable action
system. To execute an action just call
surface.execute( actionName, method, param1, param2, ... );
This helps keep tools simple, and opens the door to key commands
reusing the same code.
Change-Id: Ie786fa3d38d1ea17d39b5dfb8eeeb5f2256267ce