From 2ddec8b29c46f57481463abd9b56a39185986918 Mon Sep 17 00:00:00 2001 From: raven Date: Wed, 11 Feb 2026 17:08:51 -0600 Subject: mark channel read upon interaction with UI --- client/channel_window.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'client/channel_window.go') 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) { -- cgit v1.2.3