Closed Bug 376669 Opened 17 years ago Closed 16 years ago

[MacOSX] status bar resize widget not drawn over pinstriped background

Categories

(SeaMonkey :: Themes, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED WORKSFORME

People

(Reporter: vlad, Unassigned)

References

Details

On OSX, the resize widget is drawn by the OS, unlike the other platforms.  Right now, the resize widget is drawn against a white background, whereas the rest of the status bar has the pinstripe background.

This is because:

http://lxr.mozilla.org/seamonkey/source/toolkit/themes/pinstripe/global/global.css#157

statusbar has a -moz-appearance of "none"; it really should have a -moz-appearance of "dialog", in which case the pinstripes would get drawn all the way across it and underneath the resize widget.  However, if we do that, then the 1px solid border is ignored.

http://lxr.mozilla.org/seamonkey/source/toolkit/themes/pinstripe/global/global.css#168

Instead, currently, each statusbarpanel (which is what all the children of statusbar should be) has -moz-appearance set to "dialog".

http://lxr.mozilla.org/seamonkey/source/toolkit/content/xul.css#344

That code there hides the xul resize widget on the mac, so there's no "statusbarpanel" for the resize widget.

http://lxr.mozilla.org/seamonkey/source/toolkit/content/xul.css#955

And this here is what causes the statusbar to leave enough room for the resize widget that the OS draws.

So, I'm going to let someone else untangle this mess; my suggestion would be to either figure out how to get the border to draw elsewhere and to just set moz-appearance on statusbar, and be done with it.  If that's not possible, then instead we could not set statusbar-resizerpanel to display: none and instead make sure it just shows no content, and remove the extra padding in xul.css.  That way the resizerpanel would be placed underneath where the OS draws the resize widget, draw its background and no other content, and all should work; but i'm not sure what the effect of having that wieget there would be.
Flags: blocking1.9?
There is a -moz-appearance: scrollcorner, and a way with HITheme to draw this. There's probably a way to get rid of the window drawing that scroll corner itself (I think removing the resize bit on the window mask also removes your ability to actually resize the window).

I'd need to do some more digging to fix this.
-[NSWindow setShowsResizeIndicator:] will tell the OS to not draw the resize widget on its own. According to the docs, it does not affect wether or not you can resize the window.

Probably we should turn that off and draw it ourselves. Seems "simpler" that way.
Yeah, I agree -- that would also fix the other bug of the resize widget randomly disappearing, and we can get rid of a pile of mac-specific code.
Assignee: nobody → joshmoz
Flags: blocking1.9? → blocking1.9+
Assignee: joshmoz → nobody
Summary: [MacOSX] status bar redraw widget not drawn over pinstriped background → [MacOSX] status bar resize widget not drawn over pinstriped background
New theme seems to have fixed this.
Status: NEW → RESOLVED
Closed: 16 years ago
Flags: tracking1.9+
Resolution: --- → WORKSFORME
v. Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9b4pre) Gecko/2008022804 Minefield/3.0b4pre
Status: RESOLVED → VERIFIED
Product: Core → SeaMonkey
You need to log in before you can comment on or make changes to this bug.