Dont print status if it has not changed

Only print the status, if status has changed or the status message

Clients announce there idle-time with presences but adding a idle-time
does not necessarily mean they went from available -> away

Fixes #9001
This commit is contained in:
Philipp Hörist 2018-03-26 23:47:43 +02:00
parent 4ef15d4aaa
commit 5794d54d1c
2 changed files with 4 additions and 5 deletions

View File

@ -851,10 +851,9 @@ class ConnectionHandlersBase:
obj.contact.contact_name = obj.contact_nickname
obj.need_redraw = True
if obj.old_show == obj.new_show and obj.contact.status == \
obj.status and obj.contact.priority == obj.prio and \
obj.contact.idle_time == obj.idle_time: # no change
return True
elif obj.old_show != obj.new_show or obj.contact.status != \
obj.status:
obj.need_redraw = True
else:
obj.contact = app.contacts.get_first_contact_from_jid(account,
jid)

View File

@ -2574,7 +2574,7 @@ class RosterWindow:
self.draw_contact(jid, account)
self.draw_group(_('Transports'), account)
if obj.contact:
if obj.contact and obj.need_redraw:
self.chg_contact_status(obj.contact, obj.show, obj.status, account)
if obj.popup: