Closed Bug 1653597 Opened 2 years ago Closed 2 years ago

TB68 started up at top of message list, TB78 starts at bottom of message list with last message selected

Categories

(Thunderbird :: Folder and Message Lists, defect)

defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: jik, Unassigned)

References

(Blocks 1 open bug)

Details

On startup, TB68 has the message list scrolled to the top with no messages selected. In contrast, on startup TB78 selects the bottom message in the message list and starts up scrolled to the bottom of the list. This is a gratuitous and in my opinion incorrect UX change. Please restore the previous behavior or at least make it a configurable option.

Status: NEW → UNCONFIRMED
Ever confirmed: false

Correction: It appears that the new behavior is to start with the oldest message in the inbox selected, and to scroll the message list to wherever that message happens to be in it. I discovered this because I tried to at least restore some semblance of the TB68 behavior by reversing how I had the message list sorted, so that when it started up scrolled to the bottom it would at least display the same messages that are displayed initially in TB68, albeit in the opposite order. But that's not what happened. When I changed the sorting and restarted, it flipped to starting at the top message where previously it had started at the bottom.

I think this means there is literally no way for me to get back anything resembling the TB68 behavior, which makes this an even worse UX regression that I thought when I created this bug.

OK, this appears to be an intentional change, as per bug 1620310. What that bug claims it's trying to implement is, "If the message are ordered by date, go to the latest message without verifying if it's read or not. If it's ordered another way, go to the highest message." What does "highest message" mean? Why the different behavior based on whether the inbox is sorted by date?

If I first click on the Date column to sort by date ascending, and then click on the tag column to sort by tag ascending, and then quit and restart TB78, the message that is selected is the message at the bottom, which happens to be the oldest (by date) message in my inbox. If I do the reverse -- click on Date twice and then click on Tag twice -- and then restart TB, the message that is selected is the same message. So for some reason TB thinks that the oldest message in my inbox is the "highest" message. How does this make sense?

The change in bug 1620310 may have made sense for people who sort by date. It does not appear to make sense for people who use any more complicated sorting than that.

More on this... the oldest message in my inbox also happens to be the only one tagged with the tag value 6, and that's the highest tag value I use, so I think I now understand what is happening here... "highest" means the highest value for the primary sort column. So for me to be able to make TB78 behave the way I want, I would have to make the higher tags be higher priorities rather than lower tags being lower priorities.

Ugh, this this change was not thought out enough.

sigh Nope. Even reversing the numbering of my tags won't work, because unprioritized messages are supposed to be the highest priority. So in addition to doing that I also have to create a message filter which adds a tag to all new messages automatically.

All of this to work around this UX change for which no option of preserving the old behavior was provided.

I really question the wisdom of this.

Blocks: tb78found

I have my inbox sorted by star and then by date, with the most recent messages on top. When Thunderbird 78.0 starts up, it unhelpfully focuses on the oldest message at the bottom of the list, forcing me to scroll up past all 150,000+ messages to get to the most recent ones.

I found that enabling the Thunderbird Start Page is a good workaround, maybe because it prevents bug 1620310 from doing its thing?

FWIW I came up with the workaround of installing my userChromeJS add-on and putting this code in chrome/userChrome.js in my profile directory:

if (location.href.startsWith("chrome://messenger/content/messenger.x")) {
    // Scroll to the top of the inbox on load.
    var scrollInterval = 100;
    var scrollCallback = {
        notify: function(timer) {
            console.log("scrollCallback notify");
            try {
                gFolderDisplay.selectMessage(gDBView.getMsgHdrAt(0));
            }
            catch (e) {
                if (! gDBView) {
                    console.log("scrollCallback select failed");
                    timer.initWithCallback(scrollCallback, scrollInterval,
                                           Ci.TYPE_ONE_SHOT);
                    return;
                }
            }
            console.log("scrollCallback select succeeded");
        }
    };
    var scrollTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
    // I don't understand why, but when I use TYPE_REPEATING_SLACK or
    // TYPE_REPEATING_PRECISE, the timer only executes onces, so I'm
    // implementing the repetition inside the callback itself.
    console.log("scrollCallback initialize");
    scrollTimer.initWithCallback(scrollCallback, 100, Ci.TYPE_ONE_SHOT);
}

This forces the first message in the message list to be selected shortly after the window loads, forcing the message list to scroll to the top where I want it to be (and where it was in TB68).

See Also: → 1629522

Should be resolved now in Thunderbird 78.2.2 with bug 1629522.

Status: UNCONFIRMED → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.