diff options
| author | raven <citrons@mondecitronne.com> | 2026-02-11 17:08:51 -0600 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2026-02-11 17:08:51 -0600 |
| commit | 2ddec8b29c46f57481463abd9b56a39185986918 (patch) | |
| tree | 8df62c7cf9c4ac0978e13d81140039d90f4ecfcb /client/channel_window.go | |
| parent | 9b830a3d0b80d04368fae5e6bc48ad1e0049b913 (diff) | |
mark channel read upon interaction with UI
Diffstat (limited to 'client/channel_window.go')
| -rw-r--r-- | client/channel_window.go | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/client/channel_window.go b/client/channel_window.go index dbeeb3c..97e86e8 100644 --- a/client/channel_window.go +++ b/client/channel_window.go @@ -142,13 +142,25 @@ func (cw *channelWindow) Send(text string) { if cw.location.jumpTo == "" { cw.Buf.ScrollBottom() } + cw.markRead() // twofold: push to front of history, navigate back to non-history view globalApp.goTo(channelLocation {id: cw.location.id}) } -func (cw *channelWindow) setRead() { - globalApp.Request(proto.NewCmd("read", cw.location.id), nil) - globalApp.channelList.setUnread(cw.location, false) +func (cw *channelWindow) markRead() { + globalApp.Request(proto.NewCmd("read", cw.location.id), + func(response proto.Command) { + if response.Kind == "ok" { + globalApp.channelList.setUnread(cw.location, false) + } + }, + ) +} + +func (cw *channelWindow) fingersPresent() { + if globalApp.channelList.getUnread(cw.location) && cw.Buf.AtBottom() { + cw.markRead() + } } func (cw *channelWindow) replyTo(id string) { @@ -398,7 +410,7 @@ func (cw *channelWindow) OnNavigate() { if cw.jumpedTo != nil { cw.Buf.ScrollTo(cw.jumpedTo.Id()) } - cw.setRead() + cw.markRead() } func (cw *channelWindow) goToMessage(id string) { |
