Bug 365049 - "Clean up logic for scrolling and selecting when entering folder" ((Cv1-TB) Port to Thunderbird) [p=sgautherie.bz@free.fr (Serge Gautherie) r=philor]

git-svn-id: svn://10.0.0.236/trunk@245047 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
reed%reedloden.com 2008-02-06 21:38:25 +00:00
parent 1a728cd508
commit 81531d7ae1

View File

@ -122,14 +122,13 @@ function SelectAndScrollToKey(aMsgKey)
// A helper routine called after a folder is loaded to make sure
// we select and scroll to the correct message (could be the first new message,
// could be the last displayed message, etc.)
// returns true if we ended up scrolling to a message
function ScrollToMessageAfterFolderLoad(folder)
{
var scrolled = pref.getBoolPref("mailnews.scroll_to_new_message") &&
ScrollToMessage(nsMsgNavigationType.firstNew, true, false /* selectMessage */);
if (!scrolled && folder && pref.getBoolPref("mailnews.remember_selected_message"))
{
// if we failed to scroll to a new message,
// If we failed to scroll to a new message,
// reselect the last selected message
var lastMessageLoaded = folder.lastMessageLoaded;
if (lastMessageLoaded != nsMsgKey_None)
@ -159,8 +158,6 @@ function ScrollToMessageAfterFolderLoad(folder)
if (!scrolled)
EnsureRowInThreadTreeIsVisible(0);
}
return scrolled;
}
// the folderListener object
@ -189,6 +186,7 @@ var folderListener = {
var eventType = event.toString();
if (eventType == "FolderLoaded") {
if (folder) {
var scrolled = false;
var msgFolder = folder.QueryInterface(Components.interfaces.nsIMsgFolder);
var uri = folder.URI;
var rerootingFolder = (uri == gCurrentFolderToReroot);
@ -225,9 +223,8 @@ var folderListener = {
gCurrentLoadingFolderViewType = 0;
gCurrentLoadingFolderViewFlags = 0;
var scrolled = false;
LoadCurrentlyDisplayedMessage(); //used for rename folder msg loading after folder is loaded.
// Used for rename folder msg loading after folder is loaded.
scrolled = LoadCurrentlyDisplayedMessage();
if (gStartMsgKey != nsMsgKey_None) {
scrolled = SelectAndScrollToKey(gStartMsgKey);
@ -249,7 +246,7 @@ var folderListener = {
// Scroll to message for virtual folders is done in
// gSearchNotificationListener.OnSearchDone (see searchBar.js).
if (!scrolled && !(gMsgFolderSelected.flags & MSG_FOLDER_FLAG_VIRTUAL))
scrolled = ScrollToMessageAfterFolderLoad(msgFolder);
ScrollToMessageAfterFolderLoad(msgFolder);
SetBusyCursor(window, false);
}
if (gNotifyDefaultInboxLoadedOnStartup && (folder.flags & 0x1000))
@ -589,7 +586,8 @@ function HandleCompactCompleted(folder)
function LoadCurrentlyDisplayedMessage()
{
if (gCurrentlyDisplayedMessage != nsMsgViewIndex_None)
var scrolled = (gCurrentlyDisplayedMessage != nsMsgViewIndex_None);
if (scrolled)
{
var treeView = gDBView.QueryInterface(Components.interfaces.nsITreeView);
var treeSelection = treeView.selection;
@ -600,6 +598,7 @@ function LoadCurrentlyDisplayedMessage()
SetFocusThreadPane();
gCurrentlyDisplayedMessage = nsMsgViewIndex_None; //reset
}
return scrolled;
}
function IsCurrentLoadedFolder(folder)
@ -1313,6 +1312,7 @@ function GetUnreadCountElement()
gUnreadCount = document.getElementById('unreadMessageCount');
return gUnreadCount;
}
function GetTotalCountElement()
{
if (!gTotalCount)