Closed Bug 222654 Opened 22 years ago Closed 20 years ago

global/scrollbars.css for native scrollbars different on Mac (many Firefox themes break scrollbars on Mac)

Categories

(SeaMonkey :: Themes, defect)

defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.8beta4

People

(Reporter: aaronspuler, Assigned: steffen.wilberg)

References

Details

(Keywords: fixed1.8)

Attachments

(1 file, 9 obsolete files)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 If you look at the classic.jar for MacOS X and all other platforms, the code is different. To achieve native scrollbars, it (to me anyway) is impossible to use a non-mac classic.jar scrollbars.css file. To test this out, I have 2 themes that use native scrollbars, named Rain and Smoke. You may find them at http://mozthemes.tk, and if you try to install the non-Mac version on a Mac, everything is correct except for the scrollbars (they don't appear). However, installing the Mac-specific builds corrects this problem. I have not modified the code global/scrollbars.css -- I just copied the file straight from the classic.jar file. For the Mac-specific version, I pulled it from the Mac classic.jar, and for the non-Mac version, I pulled it from the Windows classic.jar. I am not the only themer noticing this problem, others on the Mozillazine forums have noticed this issue. Reproducible: Always Steps to Reproduce: 1.Install non-Mac version of Rain or Smoke themes from http://mozthemes.css 2.Restart Mozilla Actual Results: Scrollbars missing. Expected Results: Native scrollbars. Then to get native scrollbars, install the Mac-specific version, restart Mozilla, and there you go. Since Mozilla is cross-platform, themes should not have to be platform-specific.
Sorry, in "Steps to reproduce, step 1", it should say http://mozthemes.tk instead of http://mozthemes.css!
also got this problem when making my qute status and crystal status themes...
Themes may need to be platform-specific if you want a different look on different platforms, which is the case here...
But the only thing different about the themes is the scrollbars... all other os widgets are cross-platform on the themes. And here's another thing: If I take a non-Mac theme and change the -moz-appearance for all instances of scrollbar code in scrollbars.css to -moz-appearance: none, then there ARE scrollbars appearing in the mail folder pane and mail message pane! But nowhere else :(
This is about themes being cross-platform, which seems to no longer be the case. This doesn't seem to be about using OSX specific widgets and currently only appears to be a problem with scrollbars. Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6a) Gecko/20031025 Firebird/0.7+ (Mike Tigas (Nova); SVG-DOMi-Venkman; i686)
No progress yet on this bug?? I still have to maintain two versions of each theme that uses Native OS Scrollbars, and the only difference is global\scrollbars.css -- This behavior occurs on Mozilla, Mozilla Firefox, and Mozilla Thunderbird.
Flags: blocking1.8a2?
Flags: blocking1.7.1?
Assignee: shliang → themes
QA Contact: pmac
I agree with this. For all the themes I've hacked to get to work with OS X all i've had to do was replace scrollbars.css Us Mac users shouldn't have to do that. And the theme authors shouldn't have to create a seperate theme just for us.
Maintaining two versions of the same theme just to solve the missing OS X scrollbars issue is more work than should be necessary. For what it's worth I vote this issue be fixed.
Flags: blocking1.8a2? → blocking1.8a2-
Asa, how about nominating this as a blocker for 1.9??? Please?
Requesting blocking-aviary1.0mac on this bug.. Unless it's intentional that themes aren't cross-platform for MacOSX on Firefox and Tbird. Bug 252294, was filed against Mozilla Update asking that the Cross-Platform "All" themes be hidden for MacOSX users, because of this bug. As most cross-platform themes that don't take Mac into consideration appearantly are failing to show up appropriately. I'd rather see this bug fixed than have to implement such a workaround for Update.
Flags: blocking-aviary1.0mac?
Blocks: 252294
The only place using chrome://global/skin/scrollbars.css is http://lxr.mozilla.org/seamonkey/source/content/base/src/nsLayoutStylesheetCache.cpp#83 (there's also mozilla/extensions/inspector/resources/content/tests/allskin.xul, but that's only used by inspector/jar.mn). We could do this: -NS_LITERAL_CSTRING("chrome://global/skin/scrollbars.css")); +#idef XP_MACOSX + NS_LITERAL_CSTRING("chrome://global/skin/nativescrollbars.css")); +#else + NS_LITERAL_CSTRING("chrome://global/skin/xulscrollbars.css")); +#endif Include both css files in the appropriate jar.mn (and clean up some cruft in makefiles). Each theme could provide both css files then, and the app would use the one appropriate for its platform.
Is it in the same place for Firefox?
*** Bug 254783 has been marked as a duplicate of this bug. ***
*** Bug 256280 has been marked as a duplicate of this bug. ***
*** Bug 262174 has been marked as a duplicate of this bug. ***
Steffen - Can you please turn your idea into a formal patch?
This is really causing a problem for UMO. Unfortunately this didn't make it for 1.0, which means a lot of frustrated users.
Severity: normal → major
I can make a formal patch out of the idea, not "now" though, not sure who to r? though, or if that patch is optimal...but it will likely be a much better work-around than what is currently in place.
Re-Assigning to me, so I dont loose.
Assignee: themes → 116057
Flags: blocking-aviary1.0mac?
*** Bug 272307 has been marked as a duplicate of this bug. ***
Flags: blocking1.7.5? → blocking1.7.5-
*** Bug 285084 has been marked as a duplicate of this bug. ***
Comment on attachment 175042 [details] [diff] [review] patch #1 - first part of what has been described in comment 11 hmm forgive me for talking this late at night, but do we not need the #ifdef etc as teh first character on the line, at least the # anyway, with possible space between that and teh command. Plus #idef XP_MACOSX is wrong, mistyped. I am unsure of which new-file scrollbars.css will be best shipped to, though a new file for the other will be needed, and an edit of the jar.mn for those CSS files.
Flags: blocking-aviary1.1?
Summary: global/scrollbars.css for native scrollbars different on mac → global/scrollbars.css for native scrollbars different on Mac (many Firefox themes break scrollbars on Mac)
Of course this doesn't help the theme developer who wants to have the scrollbars on every OS; e.g. Modern Pinball
Of course this doesn't help the theme developer who wants to have the same scrollbars on every OS; e.g. Modern Pinball
Comment on attachment 184227 [details] [diff] [review] Tweaked patch addressing #idef and #ifdef etc at the start of the line I'll diff -u next time : )
Attachment #184227 - Attachment is obsolete: true
Attached patch diff -u tweaked patch (obsolete) — Splinter Review
Regarding comment 24 [25] nativescrollbars.css would only need to be : @import(xulscrollbars.css); /* absolute paths if absolutely necessary */ or @import(chrome://global/skin/xulscrollbars.css); To get around that. Apologies for excessive bugspam. Been up since approx 4am
Attachment #184228 - Attachment is obsolete: true
Attached patch complete patch (obsolete) — Splinter Review
The above patches are nowhere near complete, so lLet's start again. The goal is to allow themes to provide two css files, one for Mac (nativescrollbars.css) and one for the other platforms (xulscrollbars.css). The advantage is that you can provide a single theme for all platforms. This patch changes the reference from the generic chrome://global/skin/scrollbars.css to chrome://global/skin/nativescrollbars.css and chrome://global/skin/xulscrollbars.css. On the Seamonkey Classic theme, there are already two files, nativescrollbars.css and xulscrollbars.css. So I only need to change the jar.mn packaging. On the Seamonkey Modern theme, there's only scrollbars.css, providing xul scrollbars on all platforms. The jar.mn file packages it as nativescrollbars.css on Mac, and as xulscrollbars.css on the other platforms. On Pinstripe, which is used by Firefox on Mac, there's a scrollbars.css file, which I move to nativescrollbars.css, and pack that. On Qute, which is used by Thunderbird on all platforms, there's only scrollbars.css, providing xul scrollbars on all platforms. The jar.mn file packages it as nativescrollbars.css on Mac, and as xulscrollbars.css on the other platforms. On Winstripe, which is used by Firefox on non-Mac platforms, there's a scrollbars.css file, which I move to xulscrollbars.css, and pack that. The allskin.xul file is the only other file referencing chrome://global/skin/scrollbars.css.
Assignee: bugspam.Callek → steffen.wilberg
Attachment #175042 - Attachment is obsolete: true
Attachment #184229 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #184242 - Flags: superreview?(dbaron)
Attachment #184242 - Flags: review?(dbaron)
I tested this with Firefox on Linux. There's no difference to Firefox/Windows. I'd be glad if someone could test this on Mac and on Seamonkey.
Comment on attachment 184242 [details] [diff] [review] complete patch I'm not the right reviewer for this.
Attachment #184242 - Flags: superreview?(dbaron)
Attachment #184242 - Flags: superreview?
Attachment #184242 - Flags: review?(dbaron)
Attachment #184242 - Flags: review?
Attachment #184242 - Flags: superreview?
Attachment #184242 - Flags: review?(neil.parkwaycc.co.uk)
Attachment #184242 - Flags: review?(kevin)
Attachment #184242 - Flags: review?
Comment on attachment 184242 [details] [diff] [review] complete patch >- NS_LITERAL_CSTRING("chrome://global/skin/scrollbars.css")); >+#ifdef XP_MACOSX >+ NS_LITERAL_CSTRING("chrome://global/skin/nativescrollbars.css")); >+#else >+ NS_LITERAL_CSTRING("chrome://global/skin/xulscrollbars.css")); >+#endif On IRC bz suggested changing this to chrome://global/content/scrollbars.css then using preprocessing to @import the relevant skin file. I think it's too much pain for too little gain. But you should still get some sort of layout sign-off either way. >+#ifndef XP_MACOSX >+# use xul scrollbars on non-Mac platforms >+ skin/classic/global/xulscrollbars.css (global/win/scrollbars.css) >+#endif I'd rather that this line be moved into the #else section of the #ifdef XP_MACOSX instead of having its own #if block. >+#ifdef XP_MACOSX >+# referenced as chrome://global/skin/nativescrollbars.css on Mac >+ skin/modern/global/nativescrollbars.css (global/scrollbars.css) >+#else >+# referenced as chrome://global/skin/xulscrollbars.css on non-Mac platforms >+ skin/modern/global/xulscrollbars.css (global/scrollbars.css) >+#endif I think I'd prefer to package it twice for Modern, so that the platforms get identical .jar files (which is the point). >-+ skin/classic/global/scrollbars.css >++ skin/classic/global/nativescrollbars.css I assume this would be done with a CVS move... unless your toolkit theme reviewer will let you get away with renaming it in jar.mn instead ;-) >-<?xml-stylesheet href="chrome://global/skin/scrollbars.css"?> >+#ifdef XP_MACOSX >+<?xml-stylesheet href="chrome://global/skin/nativescrollbars.css"?> >+#else >+<?xml-stylesheet href="chrome://global/skin/xulscrollbars.css"?> >+#endif Since the layout code always loads the scrollbars anyway (except for the sidebar in the modern theme, which I doubt applies here), you could probably get away with simply removing that line. sr=me with these nits fixed.
- NS_ASSERTION(gStyleCache->mScrollbarsSheet, "Could not load scrollbars.css."); + NS_ASSERTION(gStyleCache->mScrollbarsSheet, "Could not load [native]scrollbars.css."); bit still looks wrong since it's now xulscrollbars.css ... and then they're sort of "native" since Firefox etc on Linux pick up the GTK scrollbars. Are native scrollbars native or pseudo-native ?
Attachment #184366 - Flags: superreview?(neil.parkwaycc.co.uk)
Attached patch complete patch v1.1 (obsolete) — Splinter Review
This patch addresses Neil's comments except bz's suggestion, because that would result in shipping three css files: The nativescrollbars.css, xulscrollbars.css, and scrollbars.css, the latter having either of the first two @import'ed. I also splitted the NS_ASSERTION to report the proper file names.
Attachment #184242 - Attachment is obsolete: true
Attachment #184366 - Attachment is obsolete: true
Attachment #184444 - Flags: superreview?(neil.parkwaycc.co.uk)
Attachment #184444 - Flags: review?(kevin)
Attachment #184242 - Flags: review?(neil.parkwaycc.co.uk)
Attachment #184242 - Flags: review?(kevin)
Attachment #184366 - Flags: superreview?(neil.parkwaycc.co.uk)
Comment on attachment 184444 [details] [diff] [review] complete patch v1.1 Looks OK now but I was just wondering whether we should try to load scrollbars.css just in case.
Attachment #184444 - Flags: superreview?(neil.parkwaycc.co.uk)
Attachment #184444 - Flags: superreview?(bzbarsky)
Attachment #184444 - Flags: review+
I'll try to look at this in the next week.
Comment on attachment 184444 [details] [diff] [review] complete patch v1.1 >Index: mozilla/themes/classic/jar.mn Wouldn't it make sense to package both files no matter what the target OS is? That way theme developers who make a copy of this theme as a basis for their theme won't run into issues... Or is that what the patch is doing? >Index: mozilla/toolkit/themes/pinstripe/global/scrollbars.css Please get this repository moved (so as not to lose the CVS history) or just leave it be and only change the packaging. Again, it might make sense to package under both names so people developing themes based on this don't get screwed over. >Index: mozilla/toolkit/themes/qute/global/jar.mn Please package under both names no matter what the target platform is, like Modern does. >Index: mozilla/toolkit/themes/winstripe/global/scrollbars.css Same comments here as for Pinstripe. sr=bzbarsky with those comments addressed.
Attachment #184444 - Flags: superreview?(bzbarsky) → superreview+
Comment on attachment 184444 [details] [diff] [review] complete patch v1.1 Excuse the delay. Skin changes look good, though I haven't gotten a chance to test this on Mac since we don't build on Tiger yet
Attachment #184444 - Flags: review?(kevin) → review+
Let me see if I have this straight from a theme developer's point of view: Old: OSX: scrollbars.css Other: scrollbars.css New: OSX: nativescrollbars.css Other: xulscrollbars.css
Comment on attachment 184444 [details] [diff] [review] complete patch v1.1 >Index: mozilla/extensions/inspector/resources/content/tests/allskin.xul >=================================================================== > <?xml-stylesheet href="chrome://global/skin/radio.css"?> >-<?xml-stylesheet href="chrome://global/skin/scrollbars.css"?> > <?xml-stylesheet href="chrome://global/skin/splitter.css"?> Shouldn't you have added the others back in? And I agree with bz, you should always package both native and xulscrollbars since people base their themes on the included one. Many thanks to Anne and cdn for really getting this done.
Flags: blocking-aviary1.1? → blocking1.8b4?
what's missing here? is this ready to land?
Flags: blocking1.7.5-
Attached patch ship both files on all platforms (obsolete) — Splinter Review
Sorry for the delay. This patch addresses bz's comments by shipping both xulscrollbars.css and nativescrollbars.css on all platforms. Comment 38 is correct. Tested with Firefox on Linux.
Attachment #184444 - Attachment is obsolete: true
Attachment #189572 - Flags: review?(neil.parkwaycc.co.uk)
Attachment #189572 - Attachment is obsolete: true
Attachment #189572 - Flags: review?(neil.parkwaycc.co.uk)
Attached patch ship both files on all platforms (obsolete) — Splinter Review
Bugzilla's patch-viewer doesn't like long lines. Shorter comments this time.
Attachment #189573 - Flags: review?(neil.parkwaycc.co.uk)
Hmm, the patch-viewer ("Diff") still suppresses two lines from the pinstripe/global/jar.mn part.
Comment on attachment 189573 [details] [diff] [review] ship both files on all platforms >- NS_ASSERTION(gStyleCache->mScrollbarsSheet, "Could not load scrollbars.css."); >+#ifdef XP_MACOSX >+ NS_ASSERTION(gStyleCache->mScrollbarsSheet, "Could not load nativescrollbars.css."); >+#else >+ NS_ASSERTION(gStyleCache->mScrollbarsSheet, "Could not load xulscrollbars.css."); >+#endif I always hate trailing dots after filenames ;-)
Attachment #189573 - Flags: review?(neil.parkwaycc.co.uk) → review+
Attachment #189573 - Flags: approval1.8b4?
Attachment #189573 - Flags: approval1.8b4? → approval1.8b4+
Chase, can you please do repository copies (so as not to lose the CVS history) of mozilla/toolkit/themes/pinstripe/global/scrollbars.css to nativescrollbars.css, and mozilla/toolkit/themes/winstripe/global/scrollbars.css to xulscrollbars.css, as requested by bz in comment 36? Thanks.
Flags: blocking1.8b4? → blocking1.8b4+
Whiteboard: cvs copies needed before checkin
Justdave, can you help here please? See previous comment.
*** Bug 294365 has been marked as a duplicate of this bug. ***
Depends on: 304354
CVS copy being tracked in bug 304354.
Thanks for the cvs copies. This is an unbitrotted patch which doesn't add the already copied files, but modifies them in place. I don't have spare time today, so I'd appreciate if anybody could test this and check it in.
Attachment #189573 - Attachment is obsolete: true
Checked in trunk and 1.8-branch.
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Whiteboard: cvs copies needed before checkin
Target Milestone: --- → mozilla1.8beta4
Keywords: fixed1.8
(In reply to comment #50) > Checked in trunk and 1.8-branch. Seems like you may have mistakenly checked in a few files on the branch.
> Seems like you may have mistakenly checked in a few files on the branch. I don't think so, but bonsai's display of files removed from a branch is indeed a bit strange: mozilla/ toolkit/ themes/ pinstripe/ global/ Tag: mozilla/ toolkit/ themes/ pinstripe/ global/ MOZILLA_1_8_BRANCH mozilla/ toolkit/ themes/ winstripe/ global/ Tag: mozilla/ toolkit/ themes/ winstripe/ global/ MOZILLA_1_8_BRANCH
I'm running Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20050822 SeaMonkey/1.0a and the fix for this bug has caused the scrollbars to disappear on all of the themes from www.spuler.us (OP of this thread). There's a fix sort of discussed over here: http://forums.mozillazine.org/viewtopic.php?t=305665, so what do we do now about this bugfix? Do I start another bug?
Shriramana, those themes need to be updated, there is no need to open a bugzilla bug.
*** Bug 305864 has been marked as a duplicate of this bug. ***
*** Bug 306329 has been marked as a duplicate of this bug. ***
*** Bug 307000 has been marked as a duplicate of this bug. ***
This has been reverted by bug 379319 because we don't need different scrollbars.css files anymore.
Product: Core → SeaMonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: