diff --git a/CHANGES.rst b/CHANGES.rst index 763d30a7d..4e8e0b488 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,12 @@ Changelog ========= +0.5.3 (Unreleased) +------------------ + +- Register presence and message handlers before fetching the roster. Otherwise + some presence notifications might be missed. [jcbrand] + 0.5.2 (2013-08-05) ------------------ diff --git a/converse.js b/converse.js index ce795527c..59f10c7a4 100644 --- a/converse.js +++ b/converse.js @@ -2626,18 +2626,20 @@ $.proxy(this.roster.subscribeToSuggestedItems, this.roster), 'http://jabber.org/protocol/rosterx', 'message', null); - this.connection.roster.get($.proxy(function (a) { - this.connection.addHandler( - $.proxy(function (presence) { - this.presenceHandler(presence); - return true; - }, this.roster), null, 'presence', null); - this.connection.addHandler( - $.proxy(function (message) { - this.chatboxes.messageReceived(message); - return true; - }, this), null, 'message', 'chat'); - }, this)); + this.connection.addHandler( + $.proxy(function (presence) { + this.presenceHandler(presence); + return true; + }, this.roster), null, 'presence', null); + + this.connection.addHandler( + $.proxy(function (message) { + this.chatboxes.messageReceived(message); + return true; + }, this), null, 'message', 'chat'); + + this.connection.roster.get(function () {}); + $(window).on("blur focus", $.proxy(function(e) { if ((this.windowState != e.type) && (e.type == 'focus')) { converse.clearMsgCounter();