Closed zyphlar closed 3 years ago
Excellent write-up :)
The conversation-updated
signal was initially targeted for when the 'unseen' status from the UI is updated on the conversation (i.e. when you click on the tab/window then Pidgin/Finch/whatever will unset the PURPLE_CONVERSATION_UPDATE_UNSEEN
)
So the intent is definitely to only trigger this code when you focus the tab/window after previously not having it focused.
It looks like
googlechat_mark_conversation_seen()
is intended to mainly be called on line 372 ofgooglechat_events.c
inside anif(purple_conversation_has_focus())
test, however that code path doesn't seem to be getting hit for me and instead it's primarily called via line 401 oflibgooglechat.c
as a direct callback of theconversation-updated
event where there is no test for focus.Unsure what the intent is (and weirdly
conversation-updated
doesn't seem to fire on sending a message, just receiving, so with this patch our user is often shown as not having seen their own last message) but this at least prevents the current behavior of overzealously marking everything as seen.