Closed Bug 458533 Opened 17 years ago Closed 17 years ago

SeaMonkey's statusbar progress uses different mechanism from Thunderbird's

Categories

(SeaMonkey :: MailNews: Message Display, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
seamonkey2.0a3

People

(Reporter: jcranmer, Assigned: kairo)

References

Details

Attachments

(1 file, 1 obsolete file)

I came across this when working on bug 457333. TB's nsMsgStatusFeedback expects to see: <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-progresspanel"> <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/> </statusbarpanel> While SM expects: <statusbarpanel class="statusbarpanel-progress" id="progress-panel"> <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/> </statusbarpanel> The differences are in the id (statusbar-progresspanel versus progress-panel) and the hide mechanism (collapsed versus hidden). This bug makes de-forking UI difficult, but I worked around this in bug 457333 with this JS: try { gStatusFeedback._startMeteors(); } catch (e) { // We're not using the right setup. Change it to use SM's model. let element = document.getElementById("statusbar-progresspanel"); element.id = "progress-panel"; element.removeAttribute('collapsed'); // Start it running again to ensure that stopping will stop fully. gStatusFeedback._startMeteors(); } finally { // And stop it because we aren't running anything. gStatusFeedback._stopMeteors(); } I hope I'm not too presumptuous in asking for blocking-seamonkey2 on this.
Flags: blocking-seamonkey2?
I don't mind if you need to rename our statusbarpanel to use TB's id, but the use of collapsed is wrong here and it should be using hidden like we do.
ensureStatusFields : function() { if (!this.statusTextFld ) this.statusTextFld = document.getElementById("statusText"); if (!this.statusBar) this.statusBar = document.getElementById("statusbar-icon"); if (!this.statusPanel) this.statusPanel = document.getElementById("progress-panel"); You could change the last line to: if (!this.statusPanel) this.statusPanel = document.getElementById("progress-panel") || document.getElementById("statusbar-progresspanel");
I'll do at least the ID part as that blocks bug 313822 (Lighting fills error console with exceptions about a null this.mStatusProgressPanel resulting from http://mxr.mozilla.org/comm-central/source/calendar/base/content/calendar-statusbar.js#62 which uses the Thunderbird ID).
Assignee: nobody → kairo
Blocks: 313822
Target Milestone: --- → seamonkey2.0a3
Attached patch suite part: change ID (obsolete) — Splinter Review
This changes the ID for the progress panel everywhere in the suite to the same ID that is used by Thunderbird.
Attachment #356082 - Flags: superreview?(neil)
Attachment #356082 - Flags: review?(neil)
After IRC discussion, Neil apparently found out that collapsed is faster than hidden in XUL in cases where it get toggled often, which is what we have here. Because of this, here's a patch that changes the ID and switched to collapsed in SeaMonkey.
Attachment #356082 - Attachment is obsolete: true
Attachment #356220 - Flags: superreview?(neil)
Attachment #356220 - Flags: review?(neil)
Attachment #356082 - Flags: superreview?(neil)
Attachment #356082 - Flags: review?(neil)
Comment on attachment 356220 [details] [diff] [review] v2: change ID and use collapsed in suite >- this.statusPanel.hidden = false; >+ this.statusPanel.removeAttribute("collapsed"); Setting .collapsed = false works just as well as .hidden = false did :-) (xN)
Attachment #356220 - Flags: superreview?(neil)
Attachment #356220 - Flags: superreview+
Attachment #356220 - Flags: review?(neil)
Attachment #356220 - Flags: review+
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Flags: blocking-seamonkey2?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: