public override bool TryMatch(Dom.Node node) { if (node == null) { return(false); } // The element must be one of the active pointed ones or one of their parents: for (int i = 0; i < InputPointer.PointerCount; i++) { InputPointer pointer = InputPointer.AllRaw[i]; if (pointer.ActiveOver == node) { // Great, got it! return(true); } else if (pointer.ActiveOver != null) { // Is our node one of its parents? if (node.isParentOf(pointer.ActiveOver)) { return(true); } } } // Nope! return(false); }