DetailedList refresh view can't be activated on macOS 14 (Sonoma)
- Dominant language
- Python
- Stars
- 5.4k
- Forks
- 827
- Avg merge
- 15h 39m
- Merged PRs (30d)
- 40
Description
### Describe the bug
When using macOS Sonoma, the DetailedList "pull to refresh" behavior can't be activated.
### Steps to reproduce
1. Run the `DetailedList` example app
2. Try to pull down to refresh the data.
The scroll view won't "bounce" allowing the view to be refreshed.
### Expected behavior
It should be possible to invoke refresh.
### Screenshots
_No response_
### Environment
- Operating System: macOS Sonoma
- Python version: All? (tested on 3.10)
- Software versions:
- Toga: 0.4.2
### Logs
_No response_
### Additional context
The underlying problem appears to be that scroll elasticity has been disabled in Sonoma. On my test machine, there's no "bounce" on *any* scroll container if you try to scroll past the limits of the window. Toga-demo is enough to demonstrate this - on Ventura, there's a bounce; on my clean Sonoma install, there isn't.
This came up in testing of #2404 - there's a FIXME in cocoa/widgets/internals/refresh.py:103 that disables code coverage on the branch that would be triggered by a working pull-to-scroll implementation.
However, it appears that pull-to-scroll hasn't been *universally* disabled - I've checked with someone else who has a Sonoma install, and they *do* have elasticity in their scroll views.
To fix this - we should add a "refresh" option to the context menu where actions are displayed
Contributor guide
Research direction
Start with cocoa/widgets/internals/refresh.py, especially the FIXME around line 103, and reproduce the DetailedList example on macOS Sonoma. Compare the refresh behavior with the available context-menu actions and verify that users can invoke refresh even when scroll elasticity is unavailable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, python
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100