Closed Bug 359543 Opened 18 years ago Closed 18 years ago

[cocoa] Theme switching is broken

Categories

(SeaMonkey :: UI Design, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: stefanh, Assigned: jag+mozilla)

References

Details

(Keywords: regression)

SeaMonkey trunk 2006110207, mac os x Theme switching seems to be broken, at least on mac. Even though I get the dialog after I choose a theme, SeaMonkey doesn't switch to the selected theme. Steps to reproduce: 1) Get a trunk build and start it with a fresh profile. 2) View --> Apply Theme --> Modern, note that the dialog appear. 3) Quit Seamonkey 4) Start SeaMonkey (use the previous profile, of course) and notice that the skin is Classic Further notice: No checkmarks appear on the theme menuitems...
1. Is the preference general.skins.selectedSkin set? 2. Is it set after you apply theme, but before you restart? 3. Is it set after you restart? 4. If you paste this into the JS console, does it change the theme? /* Note: you need to evaluate this all as one long string */ var nsIChromeRegistrySea = Components.interfaces.nsIChromeRegistrySea; var chromeClass = Components.classes['@mozilla.org/chrome/chrome-registry;1']; var chromeRegistry = chromeClass.getService(nsIChromeRegistrySea); chromeRegistry.selectSkin("modern/1.0", true); chromeRegistry.refreshSkins();
Works in 2006092806 Broken in 2006092906 Hmm...
Keywords: regression
(In reply to comment #1) > 1. Is the preference general.skins.selectedSkin set? > 2. Is it set after you apply theme, but before you restart? > 3. Is it set after you restart? > 4. If you paste this into the JS console, does it change the theme? > /* Note: you need to evaluate this all as one long string */ > var nsIChromeRegistrySea = Components.interfaces.nsIChromeRegistrySea; > var chromeClass = Components.classes['@mozilla.org/chrome/chrome-registry;1']; > var chromeRegistry = chromeClass.getService(nsIChromeRegistrySea); > chromeRegistry.selectSkin("modern/1.0", true); chromeRegistry.refreshSkins(); > oh, missed your comment. Hang on...
(In reply to comment #1) > 1. Is the preference general.skins.selectedSkin set? > 2. Is it set after you apply theme, but before you restart? > 3. Is it set after you restart? > 4. If you paste this into the JS console, does it change the theme? > /* Note: you need to evaluate this all as one long string */ > var nsIChromeRegistrySea = Components.interfaces.nsIChromeRegistrySea; > var chromeClass = Components.classes['@mozilla.org/chrome/chrome-registry;1']; > var chromeRegistry = chromeClass.getService(nsIChromeRegistrySea); > chromeRegistry.selectSkin("modern/1.0", true); chromeRegistry.refreshSkins(); > 1) No 2) Yes 3) No 4) Yes (sigh, not able to paste from clipboard)
(In reply to comment #2) >Works in 2006092806 >Broken in 2006092906 That was the cocoa widget change, wasn't it?
(In reply to comment #5) > (In reply to comment #2) > >Works in 2006092806 > >Broken in 2006092906 > That was the cocoa widget change, wasn't it? > Yes. Fwiw, the answer to your questions (1-3, didn't checked 4 - but I assume it works) would be the same on 2006092806. Hmm.
I made a (xpfe) trunk build with _PLATFORM_DEFAULT_TOOLKIT='mac' instead of 'cocoa'. It appears that theme switching works with the old toolkit. Btw, I checked with a phlox suiterunner build. We lack the menuitems - but we seem to have dynamic theme switching there - general.skins.selectedSkin is set and changing it makes the themes switch on the fly (but I suppose that's known).
Blocks: 326469
Summary: Theme switching is broken → [cocoa] Theme switching is broken
Well, the obvious thing different between the two toolkits is the menu handling... do both toolkits set the pref to the same value? I'm wondering whether the cocoa toolkit isn't updating the DOM or firing the event correctly.
I just tried this on a recent nightly - and it seems to work now.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.