Skip to content

Fix manual "mark as unread" being immediately cleared on iPad - #6377

Open
feather2222 wants to merge 1 commit into
signalapp:mainfrom
feather2222:ipad-keep-manually-marked-unread
Open

feather2222 wants to merge 1 commit into
signalapp:mainfrom
feather2222:ipad-keep-manually-marked-unread

Conversation

@feather2222

Copy link
Copy Markdown

Fixes #6373

Root cause

On iPad, the conversation remains visible in the split view while the chat list is still accessible. markVisibleMessagesAsRead is invoked repeatedly by readTimer while a conversation is open, and it unconditionally called clearThreadUnreadFlagIfNecessary(). As a result, marking the currently-open conversation as unread had no visible effect — the flag was cleared again within seconds.

Fix

Only clear the manually-set unread flag when the conversation appears (viewDidAppear), not on every read-timer tick. Messages are still marked as read while the conversation is visible, exactly as before.

Testing

Reproduced on iPad simulator (iOS 26.2) before the fix — marking an open chat as unread, the unread indicator never appeared:

【repro-1-mark-unread】
【repro-2-no-badge-bug】

After the fix — the unread indicator appears and stays while the chat is open, and clears normally after leaving and re-entering the chat:

【fixed-blue-dot】

Regression check on iPhone simulator: mark-as-unread and normal read behavior unchanged.

On iPad, the conversation stays visible in the split view while the
chat list is shown. markVisibleMessagesAsRead is called repeatedly by
readTimer while the conversation is open, and it unconditionally
cleared the manually-set unread flag, so marking an open conversation
as unread had no visible effect.

Only clear the manual unread flag when the conversation appears
(viewDidAppear), not on every timer tick.

Fixes signalapp#6373
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iPad: Impossible to mark the currently open chat as unread

1 participant