diff --git a/js/index.js b/js/index.js index 3300586ba..aad3063cb 100644 --- a/js/index.js +++ b/js/index.js @@ -24,7 +24,14 @@ window.location = '/options.html'; } else { extension.windows.getCurrent(function(appWindow) { - new bg.Whisper.InboxView({appWindow: appWindow}).$el.prependTo(bg.$('body',document)); + var view = new bg.Whisper.InboxView({appWindow: appWindow}); + view.$el.prependTo(bg.$('body',document)); + window.openConversation = function(conversation) { + if (conversation) { + view.openConversation(null, {conversation: conversation}); + } + }; + openConversation(bg.getOpenConversation()); }); } }); diff --git a/js/panel_controller.js b/js/panel_controller.js index e8e67d7fc..410c766a8 100644 --- a/js/panel_controller.js +++ b/js/panel_controller.js @@ -118,12 +118,6 @@ } }; - function openConversation(conversation) { - openInbox(); - var appWindow = chrome.app.window.get(inboxWindowId); - appWindow.contentWindow.trigger('open', {conversation: conversation}); - } - /* Inbox window controller */ var inboxOpened = false; var inboxWindowId = 'inbox'; @@ -164,6 +158,22 @@ } }; + var open; + function openConversation(conversation) { + if (inboxOpened === true) { + var appWindow = chrome.app.window.get(inboxWindowId); + appWindow.contentWindow.openConversation(conversation); + } else { + open = conversation; + openInbox(); + } + } + window.getOpenConversation = function() { + var o = open; + open = null; + return o; + }; + extension.onLaunched(function() { storage.onready(function() { if (textsecure.registration.isDone()) {