Fix drawing of non-top-level anchors
This commit is contained in:
parent
6fae53e0c8
commit
0c5369cd9d
2 changed files with 26 additions and 32 deletions
|
|
@ -69,14 +69,6 @@ class ElementSupply(abc.ABC):
|
||||||
|
|
||||||
return children
|
return children
|
||||||
|
|
||||||
# There is not a clear-cut way to get the previous or next "sibling" of an
|
|
||||||
# element that is itself a child of the implicit root (None), since
|
|
||||||
# get_children() doesn't accept None in its element_id argument.
|
|
||||||
#
|
|
||||||
# Because of this, the get_previous_id() and get_next_id() functions are
|
|
||||||
# abstract (until I decide to change the signature of get_children(), that
|
|
||||||
# is :P).
|
|
||||||
|
|
||||||
def get_previous_id(self, element_id: Id) -> Optional[Id]:
|
def get_previous_id(self, element_id: Id) -> Optional[Id]:
|
||||||
"""
|
"""
|
||||||
Get the id of an element's previous sibling (i. e. the sibling just
|
Get the id of an element's previous sibling (i. e. the sibling just
|
||||||
|
|
@ -139,28 +131,29 @@ class ElementSupply(abc.ABC):
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# def get_furthest_ancestor_id(self,
|
def get_furthest_ancestor_id(self,
|
||||||
# element_id: Id,
|
element_id: Id,
|
||||||
# root_id: Optional[Id] = None,
|
root_id: Optional[Id] = None,
|
||||||
# ) -> Id:
|
) -> Id:
|
||||||
# current_id = element_id
|
current_id = element_id
|
||||||
#
|
|
||||||
# while True:
|
while True:
|
||||||
# parent_id = self.get_parent_id(current_id)
|
parent_id = self.get_parent_id(current_id)
|
||||||
#
|
|
||||||
# if parent_id == root_id:
|
if parent_id == root_id:
|
||||||
# return current_id
|
return current_id
|
||||||
# elif parent_id is None:
|
elif parent_id is None:
|
||||||
# raise TreeException("Reached implicit root before hitting specified root")
|
raise TreeException(
|
||||||
#
|
"Reached implicit root before hitting specified root")
|
||||||
# current_id = parent_id
|
|
||||||
#
|
current_id = parent_id
|
||||||
# def get_furthest_ancestor(self,
|
|
||||||
# element_id: Id,
|
def get_furthest_ancestor(self,
|
||||||
# root_id: Optional[Id] = None,
|
element_id: Id,
|
||||||
# ) -> Element:
|
root_id: Optional[Id] = None,
|
||||||
# return self.get(self.get_furthest_ancestor_id(element_id,
|
) -> Element:
|
||||||
# root_id=root_id))
|
return self.get(self.get_furthest_ancestor_id(element_id,
|
||||||
|
root_id=root_id))
|
||||||
|
|
||||||
class MemoryElementSupply(ElementSupply):
|
class MemoryElementSupply(ElementSupply):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -195,9 +195,10 @@ class TreeDisplay:
|
||||||
self._rendered = None
|
self._rendered = None
|
||||||
return
|
return
|
||||||
|
|
||||||
anchor_tree = self._render_tree(self.anchor_id)
|
ancestor_id = self._supply.get_furthest_ancestor_id(self.anchor_id)
|
||||||
|
ancestor_tree = self._render_tree(ancestor_id)
|
||||||
|
|
||||||
self._rendered = TreeList(anchor_tree, self.anchor_id)
|
self._rendered = TreeList(ancestor_tree, self.anchor_id)
|
||||||
self._rendered.offset_by(self.anchor_offset)
|
self._rendered.offset_by(self.anchor_offset)
|
||||||
|
|
||||||
self._fill_screen_upwards()
|
self._fill_screen_upwards()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue