beeware / beeware/toga

DetailedList refresh view can't be activated on macOS 14 (Sonoma)

Open
#2,412 4 comments 0 reactions 0 assignees View on GitHub
bug macOS
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.