mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Simplify the selection extents function
This commit is contained in:
parent
72fcbbc93a
commit
1e24b66dad
@ -534,7 +534,7 @@ class IframeBoss:
|
|||||||
self.send_message(
|
self.send_message(
|
||||||
'selectionchange', text=text, empty=v'!!collapsed', annot_id=annot_id,
|
'selectionchange', text=text, empty=v'!!collapsed', annot_id=annot_id,
|
||||||
drag_mouse_position=drag_mouse_position, selection_change_caused_by_search=by_search,
|
drag_mouse_position=drag_mouse_position, selection_change_caused_by_search=by_search,
|
||||||
selection_extents=selection_extents(current_layout_mode() is 'flow', True))
|
selection_extents=selection_extents(current_layout_mode() is 'flow'))
|
||||||
|
|
||||||
def onresize_stage2(self):
|
def onresize_stage2(self):
|
||||||
if scroll_viewport.width() is self.last_window_width and scroll_viewport.height() is self.last_window_height:
|
if scroll_viewport.width() is self.last_window_width and scroll_viewport.height() is self.last_window_height:
|
||||||
@ -556,7 +556,7 @@ class IframeBoss:
|
|||||||
if sel and not sel.isCollapsed:
|
if sel and not sel.isCollapsed:
|
||||||
# update_selection_position has probably already been called by
|
# update_selection_position has probably already been called by
|
||||||
# no_latency_onscroll but make sure
|
# no_latency_onscroll but make sure
|
||||||
self.send_message('update_selection_position', selection_extents=selection_extents(current_layout_mode() is 'flow', True))
|
self.send_message('update_selection_position', selection_extents=selection_extents(current_layout_mode() is 'flow'))
|
||||||
|
|
||||||
def received_window_size(self, data):
|
def received_window_size(self, data):
|
||||||
scroll_viewport.update_window_size(data.width, data.height)
|
scroll_viewport.update_window_size(data.width, data.height)
|
||||||
|
@ -51,12 +51,12 @@ def empty_range_extents():
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def range_extents(start, end, in_flow_mode):
|
def range_extents(q, in_flow_mode):
|
||||||
ans = empty_range_extents()
|
ans = empty_range_extents()
|
||||||
if not start or not end:
|
if not q:
|
||||||
return ans
|
return ans
|
||||||
start = start.cloneRange()
|
start = q.cloneRange()
|
||||||
end = end.cloneRange()
|
end = q.cloneRange()
|
||||||
start.collapse(True)
|
start.collapse(True)
|
||||||
end.collapse(False)
|
end.collapse(False)
|
||||||
|
|
||||||
@ -94,21 +94,11 @@ def range_extents(start, end, in_flow_mode):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def selection_extents(in_flow_mode, end_must_be_focus):
|
def selection_extents(in_flow_mode):
|
||||||
sel = window.getSelection()
|
sel = window.getSelection()
|
||||||
if not sel or not sel.rangeCount or sel.isCollapsed:
|
if not sel or not sel.rangeCount or sel.isCollapsed:
|
||||||
return empty_range_extents()
|
return empty_range_extents()
|
||||||
if end_must_be_focus:
|
return range_extents(sel.getRangeAt(0), in_flow_mode)
|
||||||
start = document.createRange()
|
|
||||||
start.setStart(sel.anchorNode, sel.anchorOffset)
|
|
||||||
start.setEnd(sel.anchorNode, sel.anchorOffset)
|
|
||||||
end = document.createRange()
|
|
||||||
end.setStart(sel.focusNode, sel.focusOffset)
|
|
||||||
end.setEnd(sel.focusNode, sel.focusOffset)
|
|
||||||
else:
|
|
||||||
start = sel.getRangeAt(0)
|
|
||||||
end = sel.getRangeAt(sel.rangeCount - 1)
|
|
||||||
return range_extents(start, end, in_flow_mode)
|
|
||||||
|
|
||||||
|
|
||||||
def range_at_limit(invert_x, invert_y):
|
def range_at_limit(invert_x, invert_y):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user