зеркало из https://github.com/mozilla/pjs.git
fix navigation issues from stand-alone message window, sr=mscott 368239
This commit is contained in:
Родитель
84a66edcaf
Коммит
a76ce4539d
|
@ -675,7 +675,7 @@ function backToolbarMenu_init(menuPopup)
|
|||
populateHistoryMenu(menuPopup, true);
|
||||
}
|
||||
|
||||
var gNavDebug = true;
|
||||
var gNavDebug = false;
|
||||
function navDebug(str)
|
||||
{
|
||||
if (gNavDebug)
|
||||
|
@ -743,17 +743,10 @@ function NavigateToUri(target)
|
|||
var folder = RDF.GetResource(folderUri).QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
var msgHdr = messenger.msgHdrFromURI(msgUri);
|
||||
navDebug("navigating from " + messenger.navigatePos + " by " + historyIndex + " to " + msgUri + "\n");
|
||||
navDebug("folderUri = " + folderUri + "\n");
|
||||
// this "- 0" seems to ensure that historyIndex is treated as an int, not a string.
|
||||
messenger.navigatePos += historyIndex - 0;
|
||||
if (IsCurrentLoadedFolder(folder))
|
||||
{
|
||||
gDBView.selectMsgByKey(msgHdr.messageKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
gStartMsgKey = msgHdr.messageKey;
|
||||
SelectFolder(folderUri);
|
||||
}
|
||||
messenger.navigatePos += (historyIndex - 0);
|
||||
LoadNavigatedToMessage(msgHdr, folder, folderUri);
|
||||
}
|
||||
|
||||
function forwardToolbarMenu_init(menuPopup)
|
||||
|
|
|
@ -55,6 +55,7 @@ var gNextMessageViewIndexAfterDelete = -2;
|
|||
var gCurrentFolderToRerootForStandAlone;
|
||||
var gRerootOnFolderLoadForStandAlone = false;
|
||||
var gNextMessageAfterLoad = null;
|
||||
var gMessageToLoad = nsMsgKey_None;
|
||||
|
||||
// the folderListener object
|
||||
var folderListener = {
|
||||
|
@ -663,12 +664,16 @@ function SelectFolder(folderUri)
|
|||
dbview.close();
|
||||
|
||||
gCurrentFolderToRerootForStandAlone = folderUri;
|
||||
|
||||
msgWindow.openFolder = msgfolder;
|
||||
|
||||
if (msgfolder.manyHeadersToDownload)
|
||||
{
|
||||
gRerootOnFolderLoadForStandAlone = true;
|
||||
try
|
||||
{
|
||||
// accessing the db causes the folder loaded notification to get sent
|
||||
// for local folders.
|
||||
var db = msgfolder.getMsgDatabase(msgWindow);
|
||||
msgfolder.startFolderLoading();
|
||||
msgfolder.updateFolder(msgWindow);
|
||||
}
|
||||
|
@ -696,8 +701,13 @@ function RerootFolderForStandAlone(uri)
|
|||
// create new folder view
|
||||
CreateView(null);
|
||||
|
||||
if (gMessageToLoad != nsMsgKey_None)
|
||||
{
|
||||
LoadMessageByMsgKey(gMessageToLoad);
|
||||
gMessageToLoad = nsMsgKey_None;
|
||||
}
|
||||
// now do the work to load the appropriate message
|
||||
if (gNextMessageAfterLoad) {
|
||||
else if (gNextMessageAfterLoad) {
|
||||
var type = gNextMessageAfterLoad;
|
||||
gNextMessageAfterLoad = null;
|
||||
LoadMessageByNavigationType(type);
|
||||
|
@ -1185,3 +1195,17 @@ function LoadMessageByViewIndex(viewIndex)
|
|||
if (nsMsgKey_None == gDBView.keyForFirstSelectedMessage)
|
||||
UpdateMailToolbar("update toolbar for message Window");
|
||||
}
|
||||
|
||||
function LoadNavigatedToMessage(msgHdr, folder, folderUri)
|
||||
{
|
||||
if (IsCurrentLoadedFolder(folder))
|
||||
{
|
||||
LoadMessageByMsgKey(msgHdr.messageKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
gMessageToLoad = msgHdr.messageKey;
|
||||
SelectFolder(folderUri);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1745,6 +1745,20 @@ function GetFolderAttribute(tree, source, attribute)
|
|||
return target;
|
||||
}
|
||||
|
||||
function LoadNavigatedToMessage(msgHdr, folder, folderUri)
|
||||
{
|
||||
if (IsCurrentLoadedFolder(folder))
|
||||
{
|
||||
gDBView.selectMsgByKey(msgHdr.messageKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
gStartMsgKey = msgHdr.messageKey;
|
||||
SelectFolder(folderUri);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Some of the per account junk mail settings have been
|
||||
// converted to global prefs. Let's try to migrate some
|
||||
// of those settings from the default account.
|
||||
|
|
Загрузка…
Ссылка в новой задаче