Mercurial > MadButterfly
view pyink/dom_event.py @ 1256:8755415b5e99
More check for remvoing scene and scene group.
- Without this check, it can make Inkscape crashed if we remove a
node that had been removed.
- Check whether it owns a parent node before removing.
- A removed node has no parent node.
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Tue, 11 Jan 2011 15:02:27 +0800 |
parents | 07e0cb1e051d |
children | 5313bbfafa67 |
line wrap: on
line source
import pybInkscape class ObjectWatcher(pybInkscape.PYNodeObserver): def __init__(self, obj, type, func, arg): self.obj = obj self.type = type self.func = func self.arg = arg def notifyChildAdded(self, node, child, prev): if self.type == 'DOMNodeInserted': self.func(node, child) def notifyChildRemoved(self, node, child, prev): if self.type == 'DOMNodeRemoved': self.func(node, child) def notifyChildOrderChanged(self,node,child,prev): pass def notifyContentChanged(self,node,old_content,new_content): if self.type == 'DOMSubtreeModified': self.func(node) def notifyAttributeChanged(self,node, name, old_value, new_value): if self.type == 'DOMAttrModified': self.func(node, name, old_value, new_value) def addEventListener(obj, type, func, arg): obs = ObjectWatcher(obj, type, func, arg) obj.addSubtreeObserver(obs) pass