mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-08-11 09:13:57 -04:00
spacial -> spatial
This commit is contained in:
parent
200a3cba71
commit
120107e9d2
@ -300,9 +300,9 @@ def node_for_text_offset(nodes, offset, first_node):
|
|||||||
#
|
#
|
||||||
# node: The node to which the CFI refers.
|
# node: The node to which the CFI refers.
|
||||||
# time: If the CFI refers to a video or sound, this is the time within such to which it refers.
|
# time: If the CFI refers to a video or sound, this is the time within such to which it refers.
|
||||||
# x, y: If the CFI defines a spacial offset (technically only valid for images and videos),
|
# x, y: If the CFI defines a spatial offset (technically only valid for images and videos),
|
||||||
# these are the X and Y percentages from the top-left of the image or video.
|
# these are the X and Y percentages from the top-left of the image or video.
|
||||||
# Note that Calibre has a fallback to set CFIs with spacial offset on the HTML document,
|
# Note that Calibre has a fallback to set CFIs with spatial offset on the HTML document,
|
||||||
# and interprets them as a position within the Calibre-rendered document.
|
# and interprets them as a position within the Calibre-rendered document.
|
||||||
# forward: This is set to True if the CFI had a side bias of 'a' (meaning 'after').
|
# forward: This is set to True if the CFI had a side bias of 'a' (meaning 'after').
|
||||||
# offset: When the CFI refers to a text node, this is the offset (zero-based index) of the character
|
# offset: When the CFI refers to a text node, this is the offset (zero-based index) of the character
|
||||||
@ -561,14 +561,14 @@ def at(x, y, doc): # {{{
|
|||||||
# then a range from the previous to the last character is created,
|
# then a range from the previous to the last character is created,
|
||||||
# and use_range_end_pos is set. This is the special case.
|
# and use_range_end_pos is set. This is the special case.
|
||||||
# Case 3. Otherwise, the range is set start at the offset and end at one character past the offset.
|
# Case 3. Otherwise, the range is set start at the offset and end at one character past the offset.
|
||||||
#
|
#
|
||||||
# In cases 2 and 3, the range is then checked to verify that bounding information can be obtained.
|
# In cases 2 and 3, the range is then checked to verify that bounding information can be obtained.
|
||||||
# If not, no range is returned.
|
# If not, no range is returned.
|
||||||
#
|
#
|
||||||
# If the CFI does not define a character offset, then the spacial offset is set in the return value.
|
# If the CFI does not define a character offset, then the spatial offset is set in the return value.
|
||||||
#
|
#
|
||||||
# Includes everything that the decode() function does, in addition to:
|
# Includes everything that the decode() function does, in addition to:
|
||||||
# range: A text range, as desribed above.
|
# range: A text range, as described above.
|
||||||
# use_range_end_pos: If this is True, a position calculated from the range should
|
# use_range_end_pos: If this is True, a position calculated from the range should
|
||||||
# use the position after the last character in the range.
|
# use the position after the last character in the range.
|
||||||
# (This is set if the offset is equal to the length of the text in the node.)
|
# (This is set if the offset is equal to the length of the text in the node.)
|
||||||
@ -648,13 +648,13 @@ def decoded_range_to_document_position(decoded):
|
|||||||
# Now, we need to convert these to document X and Y coordinates.
|
# Now, we need to convert these to document X and Y coordinates.
|
||||||
return scroll_viewport.viewport_to_document_inline_block(inline_vs_pos, block_vs_pos, decoded.node.ownerDocument)
|
return scroll_viewport.viewport_to_document_inline_block(inline_vs_pos, block_vs_pos, decoded.node.ownerDocument)
|
||||||
|
|
||||||
# This will work on a decoded CFI that refers to a node or node with spacial offset.
|
# This will work on a decoded CFI that refers to a node or node with spatial offset.
|
||||||
# It will ignore any ranges, so call decoded_to_document_position unless you're sure the decoded CFI has no range.
|
# It will ignore any ranges, so call decoded_to_document_position unless you're sure the decoded CFI has no range.
|
||||||
def decoded_node_or_spacial_offset_to_document_position(decoded):
|
def decoded_node_or_spatial_offset_to_document_position(decoded):
|
||||||
node = decoded.node
|
node = decoded.node
|
||||||
rect = node.getBoundingClientRect()
|
rect = node.getBoundingClientRect()
|
||||||
percentx, percenty = decoded.x, decoded.y
|
percentx, percenty = decoded.x, decoded.y
|
||||||
# If we have a spacial offset, base the CFI position on the offset into the object
|
# If we have a spatial offset, base the CFI position on the offset into the object
|
||||||
if jstype(percentx) is 'number' and node.offsetWidth and jstype(percenty) is 'number' and node.offsetHeight:
|
if jstype(percentx) is 'number' and node.offsetWidth and jstype(percenty) is 'number' and node.offsetHeight:
|
||||||
viewx = rect.left + (percentx*node.offsetWidth)/100
|
viewx = rect.left + (percentx*node.offsetWidth)/100
|
||||||
viewy = rect.top + (percenty*node.offsetHeight)/100
|
viewy = rect.top + (percenty*node.offsetHeight)/100
|
||||||
@ -677,8 +677,8 @@ def decoded_to_document_position(decoded):
|
|||||||
if decoded.range is not None:
|
if decoded.range is not None:
|
||||||
return decoded_range_to_document_position(decoded)
|
return decoded_range_to_document_position(decoded)
|
||||||
else if node is not None and node.getBoundingClientRect:
|
else if node is not None and node.getBoundingClientRect:
|
||||||
return decoded_node_or_spacial_offset_to_document_position(decoded)
|
return decoded_node_or_spatial_offset_to_document_position(decoded)
|
||||||
# No range, so we can't use that, and no node, so any spacial offset is meaningless
|
# No range, so we can't use that, and no node, so any spatial offset is meaningless
|
||||||
else:
|
else:
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
@ -760,7 +760,7 @@ def scroll_to(cfi, callback, doc): # {{{
|
|||||||
scroll_viewport.scroll_into_view(node)
|
scroll_viewport.scroll_into_view(node)
|
||||||
|
|
||||||
fn = def():
|
fn = def():
|
||||||
doc_x, doc_y = decoded_node_or_spacial_offset_to_document_position(decoded)
|
doc_x, doc_y = decoded_node_or_spatial_offset_to_document_position(decoded)
|
||||||
|
|
||||||
# Abort if CFI position is invalid
|
# Abort if CFI position is invalid
|
||||||
if doc_x is None or doc_y is None:
|
if doc_x is None or doc_y is None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user