I read my previous post again and it sounds a bit too negative, please don't mind :) A big improvement would be if we could create a selection independently of what is shown on the screen (though then maybe it should be called ObjectSet), and then the selection_delete etc. functions would operate on an ObjectSet instead of on the global selection.
a comment to this:
Mat-48 wrote:
Those hook can catch all editing events of SVG modification, even undo/redo operation, too.
I guess that if we added some parsing and object filter ( for example which node changes, and which attribute changes), we could make some convenient signal to trigger external scripts.
A subtree observer that catches every change is perfect for inkboarding (conceptually it just needs to send and apply all those changes across a network), but I don't know whether it would be useful for scripts. If a script changes the XML in response to an XML change, it will break a lot of things (for example, most tools) which assume that when they store to XML, the data doesn't get modified on the way. I don't know what the signals exposed over DBus will be used for so I can't suggest anything.
Instead of filtering events sent to the root subtree observer one can add observers only to the XML nodes of interest - this is more efficient because not all events must be processed.
Regards, Krzysztof Kosiński