iOS: message action sheet opens on almost every scroll (200 ms long-press timeout)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 85/100
Research direction
Start in mobile/lib/features/channels/message_long_press_region.dart and read how the iOS long-press duration is selected around line 196. Compare it with Flutter’s default timeout and the suggested timing in the issue. Done means ordinary scrolling no longer opens the message action sheet, while a deliberate press and hold still does.
Written by the indexing model from the issue text.
Description
What happens
On iPhone, the message action sheet (emoji row, Reply / Copy link / Remind me, Mark unread, Copy text, Edit, Delete) opens on almost every touch while scrolling a channel or thread. A normal scroll that starts with even a brief pause before the finger moves triggers it. Starting the touch on a different part of the screen does not help, because every row is a message.
Steps
- Open any channel with a long history in the iOS app.
- Scroll through it at a normal pace.
- The message action sheet opens repeatedly, interrupting scrolling.
Expected
The sheet opens only on a deliberate press and hold, as in other iOS apps and in Buzz on Android.
Likely cause
mobile/lib/features/channels/message_long_press_region.dart line 11:
const iosMessageLongPressDuration = Duration(milliseconds: 200);
This is used only when defaultTargetPlatform == TargetPlatform.iOS (around line 196). Other platforms use Flutter's default long-press timeout of 500 ms. The 200 ms value came in with ea143ea (#8055, "native iOS message menus and reaction sheets", 2 Oct). 200 ms is well inside the time a normal scroll gesture spends before crossing the drag threshold, so the hold wins against the scroll.
Suggested fix
Use the platform default (kLongPressTimeout, 500 ms) on iOS too, or at least something close to iOS's own context-menu timing. A setting to change or disable it would also help.
Environment
iPhone, current TestFlight/App Store build of Buzz mobile (as of 20 Oct 2026).
- Dominant language
- Rust
- Stars
- 35.9k
- Forks
- 4.8k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 270
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from block/buzz
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Mobile: show Topic, then Purpose, when a channel has no DescriptionPossibly taken @chkdesign claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
Desktop: avatars blink (blank → gray → photo) whenever a new message group rendersPossibly taken @brucesantos claimed this 12 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
metasequoiaime/msime#9113 ·
Maintainers usually reply within 1 day
-
area:desktop priority:p2 type:chore
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
area: supply-chain
Difficulty 1/5 Under an hour Newbie friendliness 73/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
-
Refresh stale docsOpen
Difficulty 1/5 1-3 hours Newbie friendliness 67/100
OpenCarControls/firmware#35 ·