GNOME Bugzilla – Bug 712635
no indication in private message that the person disconnected
Last modified: 2017-04-10 22:41:48 UTC
There is no indication in private message room that the person disconnected.
Even worse, when I type a message, there's no indication that it goes to /dev/null.
I've been looking at implementing this, but I think it needs changes to telepathy-idle to actually support signalling that the peer in an ImChannel has disconnected. I did some testing with Polari on two machines, opened a private chat, sent some messages, started inspecting the D-Bus traffic, then disconnected one of the accounts — there was no relevant D-Bus traffic to notify of this on the other machine at all (only MembersChanged signals on the org.fdo.Telepathy.Channel.Interface.Group interface for the other rooms the account was present in).
I agree that a proper fix would require changes to telepathy-idle, but as we now plan to move away from telepathy altogether, I think it is fine to work around the issue in the meantime.
Created attachment 349639 [details] [review] userTracker: Improve status tracking for private chats The ::group-contacts-changed signal is limited to channels implementing the group interface, so we miss when the remote contact disconnects from a private chat. Work around this by ignoring contacts from one-to-one chats for the global status, and remove contacts from all rooms when their global status becomes OFFLINE.
Created attachment 349640 [details] [review] chatView: Disconnect channel when contact leaves from conversation In a one-to-one conversation, there's no reason to keep the channel open after one of the participants disconnects - all further messages will go straight to /dev/null anyway - so disconnect the channel in this case.
Attachment 349639 [details] pushed as 295a5a0 - userTracker: Improve status tracking for private chats Attachment 349640 [details] pushed as 1f721d9 - chatView: Disconnect channel when contact leaves from conversation