summaryrefslogtreecommitdiff
path: root/client/channel_window.go
diff options
context:
space:
mode:
authorraven <citrons@mondecitronne.com>2026-02-11 17:08:51 -0600
committerraven <citrons@mondecitronne.com>2026-02-11 17:08:51 -0600
commit2ddec8b29c46f57481463abd9b56a39185986918 (patch)
tree8df62c7cf9c4ac0978e13d81140039d90f4ecfcb /client/channel_window.go
parent9b830a3d0b80d04368fae5e6bc48ad1e0049b913 (diff)
mark channel read upon interaction with UI
Diffstat (limited to 'client/channel_window.go')
-rw-r--r--client/channel_window.go20
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) {