Skip to content

Commit

Permalink
Merge pull request #5290 from Textualize/fix-anchor
Browse files Browse the repository at this point in the history
fix anchor
  • Loading branch information
willmcgugan authored Nov 27, 2024
2 parents 6f1f753 + be1156a commit 9f19f5f
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

### Unreleased

### Fixed

- Fixed infinite loop in `Widget.anchor` https://github.com/Textualize/textual/pull/5290

## [0.87.1] - 2024-11-24

## Fixed
Expand Down
6 changes: 2 additions & 4 deletions src/textual/widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -593,7 +593,7 @@ def opacity(self) -> float:
@property
def is_anchored(self) -> bool:
"""Is this widget anchored?"""
return self._parent is not None and self._parent is self
return isinstance(self._parent, Widget) and self._parent._anchored is self

@property
def is_mouse_over(self) -> bool:
Expand Down Expand Up @@ -4080,9 +4080,7 @@ async def _on_idle(self, event: events.Idle) -> None:
self._check_refresh()

if self.is_anchored:
self.scroll_visible(animate=self._anchor_animate)
if self._anchored:
self._anchored.scroll_visible(animate=self._anchor_animate)
self.scroll_visible(animate=self._anchor_animate, immediate=True)

def _check_refresh(self) -> None:
"""Check if a refresh was requested."""
Expand Down

0 comments on commit 9f19f5f

Please sign in to comment.