This commit is contained in:
Kovid Goyal 2020-09-14 09:04:40 +05:30
parent 940342b1b1
commit 52cf15fc23
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 5 additions and 3 deletions

View File

@ -114,7 +114,7 @@ def create_wrapper_function(wrapper_elem, r, intersecting_wrappers, process_wrap
current_range.setEnd(node, end_offset) current_range.setEnd(node, end_offset)
end_node = current_wrapper end_node = current_wrapper
end_offset = 1 end_offset = 1
crw = node.parentNode.dataset.calibreRangeWrapper crw = node.parentNode?.dataset?.calibreRangeWrapper
if crw: if crw:
intersecting_wrappers[crw] = True intersecting_wrappers[crw] = True
current_range.surroundContents(current_wrapper) current_range.surroundContents(current_wrapper)

View File

@ -389,9 +389,11 @@ def decode(cfi, doc):
orig_offset = offset orig_offset = offset
if node.parentNode?.nodeType is Node.ELEMENT_NODE and node.parentNode.dataset.calibreRangeWrapper: if node.parentNode?.nodeType is Node.ELEMENT_NODE and node.parentNode.dataset.calibreRangeWrapper:
node = node.parentNode node = node.parentNode
node, offset, ok = node_for_text_offset(node.parentNode.childNodes, offset, node) qnode, offset, ok = node_for_text_offset(node.parentNode.childNodes, offset, node)
if not ok: if not ok:
error = "Offset out of range: " + orig_offset error = "Offset out of range: " + orig_offset
if qnode:
node = qnode
decoded.offset = offset decoded.offset = offset
decoded.node = node decoded.node = node
@ -575,7 +577,7 @@ def at(x, y, doc): # {{{
def decode_with_range(cfi, doc): # {{{ def decode_with_range(cfi, doc): # {{{
doc = doc or window.document doc = doc or window.document
decoded = decode(cfi, doc) decoded = decode(cfi, doc)
if not decoded: if not decoded or not decoded.node:
return None return None
node = decoded.node node = decoded.node
ndoc = node.ownerDocument ndoc = node.ownerDocument