diff --git a/js/chromium.js b/js/chromium.js index f27f23234..ce2575e7a 100644 --- a/js/chromium.js +++ b/js/chromium.js @@ -146,7 +146,9 @@ drawAttention: function(window_id) { if (chrome.app.window) { - chrome.app.window.get(window_id).drawAttention(); + var w = chrome.app.window.get(window_id); + w.clearAttention(); + w.drawAttention(); } } diff --git a/js/panel_controller.js b/js/panel_controller.js index ef1f9e8fe..0ad499a54 100644 --- a/js/panel_controller.js +++ b/js/panel_controller.js @@ -48,7 +48,13 @@ }; window.notifyConversation = function(message) { - if (Whisper.Notifications.isEnabled()) { + var conversationId = message.get('conversationId'); + var windowId = windowMap.windowIdFrom(conversationId); + if (windowId) { + // already open + updateConversation(conversationId); + extension.windows.drawAttention(windowId); + } else if (Whisper.Notifications.isEnabled()) { var conversation = getConversation({id: message.get('conversationId')}); var sender = getConversation({id: message.get('source')}); conversation.fetch().then(function() { @@ -65,7 +71,6 @@ }); conversation.fetchMessages(); } else { - var conversationId = message.get('conversationId'); openConversation(conversationId); var windowId = windowMap.windowIdFrom(conversationId); extension.windows.drawAttention(windowId);