diff --git a/src/common/connection.py b/src/common/connection.py index e512ba612ee9d43d2d7f0bce1f69fd3092e9dc43..968244981d18e9c5ba72be8a82fa115d0066ec40 100644 --- a/src/common/connection.py +++ b/src/common/connection.py @@ -880,6 +880,10 @@ class Connection(ConnectionHandlers): def request_os_info(self, jid, resource): if not self.connection: return + # If we are invisible, do not request + if self.connected == gajim.SHOW_LIST.index('invisible'): + self.dispatch('OS_INFO', (jid, resource, _('Not fetched because of invisible status'), _('Not fetched because of invisible status'))) + return to_whom_jid = jid if resource: to_whom_jid += '/' + resource diff --git a/src/vcard.py b/src/vcard.py index f9decf5e678da3268bb7b0468767727a823c40e2..2708ac7e25489f9ff3871a2f8ffbfb60f83c9397 100644 --- a/src/vcard.py +++ b/src/vcard.py @@ -372,8 +372,8 @@ class VcardWindow: # Request os info in contact is connected if self.contact.show not in ('offline', 'error'): - gajim.connections[self.account].request_os_info(self.contact.jid, - self.contact.resource) + gobject.idle_add(gajim.connections[self.account].request_os_info, + self.contact.jid, self.contact.resource) self.os_info = {0: {'resource': self.contact.resource, 'client': '', 'os': ''}} i = 1 @@ -386,7 +386,8 @@ class VcardWindow: uf_resources += '\n' + c.resource + \ _(' resource with priority ') + unicode(c.priority) if c.show not in ('offline', 'error'): - gajim.connections[self.account].request_os_info(c.jid, + gobject.idle_add( + gajim.connections[self.account].request_os_info, c.jid, c.resource) gajim.connections[self.account].request_last_status_time(c.jid, c.resource)