mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Avoid error when selecting a non-existent range wrapper
This commit is contained in:
parent
60e8ddf968
commit
1f124726c2
@ -60,12 +60,17 @@ def unwrap_all_crw():
|
|||||||
|
|
||||||
def select_crw(crw):
|
def select_crw(crw):
|
||||||
nodes = document.querySelectorAll(f'span[data-calibre-range-wrapper="{crw}"]')
|
nodes = document.querySelectorAll(f'span[data-calibre-range-wrapper="{crw}"]')
|
||||||
r = document.createRange()
|
if nodes and nodes.length:
|
||||||
r.setStart(nodes[0].firstChild, 0)
|
r = document.createRange()
|
||||||
r.setEnd(nodes[-1].lastChild, nodes[-1].lastChild.nodeValue.length)
|
r.setStart(nodes[0].firstChild, 0)
|
||||||
sel = window.getSelection()
|
r.setEnd(nodes[-1].lastChild, nodes[-1].lastChild.nodeValue.length)
|
||||||
sel.removeAllRanges()
|
sel = window.getSelection()
|
||||||
sel.addRange(r)
|
sel.removeAllRanges()
|
||||||
|
sel.addRange(r)
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
print(f'range-wrapper: {crw} does not exist')
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def create_wrapper_function(wrapper_elem, r, intersecting_wrappers, process_wrapper):
|
def create_wrapper_function(wrapper_elem, r, intersecting_wrappers, process_wrapper):
|
||||||
|
@ -730,8 +730,7 @@ class IframeBoss:
|
|||||||
set_selection_style(data.style)
|
set_selection_style(data.style)
|
||||||
elif data.type is 'edit-highlight':
|
elif data.type is 'edit-highlight':
|
||||||
crw_ = {v: k for k, v in Object.entries(annot_id_uuid_map)}[data.uuid]
|
crw_ = {v: k for k, v in Object.entries(annot_id_uuid_map)}[data.uuid]
|
||||||
if crw_:
|
if crw_ and select_crw(crw_):
|
||||||
select_crw(crw_)
|
|
||||||
self.ensure_selection_visible()
|
self.ensure_selection_visible()
|
||||||
self.initiate_creation_of_annotation(data.uuid)
|
self.initiate_creation_of_annotation(data.uuid)
|
||||||
elif data.type is 'remove-highlight':
|
elif data.type is 'remove-highlight':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user