(cm, node, offset)
| 12569 | } |
| 12570 | |
| 12571 | function domToPos(cm, node, offset) { |
| 12572 | var lineNode |
| 12573 | if (node == cm.display.lineDiv) { |
| 12574 | lineNode = cm.display.lineDiv.childNodes[offset] |
| 12575 | if (!lineNode) { |
| 12576 | return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) |
| 12577 | } |
| 12578 | node = null |
| 12579 | offset = 0 |
| 12580 | } else { |
| 12581 | for (lineNode = node; ; lineNode = lineNode.parentNode) { |
| 12582 | if (!lineNode || lineNode == cm.display.lineDiv) { |
| 12583 | return null |
| 12584 | } |
| 12585 | if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { |
| 12586 | break |
| 12587 | } |
| 12588 | } |
| 12589 | } |
| 12590 | for (var i = 0; i < cm.display.view.length; i++) { |
| 12591 | var lineView = cm.display.view[i] |
| 12592 | if (lineView.node == lineNode) { |
| 12593 | return locateNodeInLineView(lineView, node, offset) |
| 12594 | } |
| 12595 | } |
| 12596 | } |
| 12597 | |
| 12598 | function locateNodeInLineView(lineView, node, offset) { |
| 12599 | var wrapper = lineView.text.firstChild, |
no test coverage detected