Label of open menu should move down and right in Windows Classic




12 years ago
12 years ago


(Reporter: James C, Unassigned)


Windows 98

Firefox Tracking Flags

(Not tracked)



(1 attachment)



12 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8b5) Gecko/20051011 Firefox/1.4.1
Build Identifier: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8b5) Gecko/20051011 Firefox/1.4.1

When using Classic theme on Windows, the label for an open menu should move 1
pixel down and to the right but doesn't since the patch for bug 243078 (native
theme rendering) was checked in.

Reproducible: Always

Steps to Reproduce:
1.Open Firefox in a pre-XP version of Windows or in XP with Windows Classic
turned on
2.Open a menu

Actual Results:  
Menu label does not move.

Expected Results:  
Label should move 1 pixel down and to the right.

Comment 1

12 years ago
Created attachment 199305 [details]
userChrome.css code to fix bug


12 years ago
Blocks: 243078


12 years ago
Version: unspecified → 1.5 Branch

Comment 2

12 years ago
But can you make it only affect XP Classic, and not Luna or any other themes
that don't have this behavior?  If not, this can't be taken.  This is an issue
James plans to fix on trunk, not branch...

Comment 3

12 years ago
As Joshua correctly stated, this will be fixed on trunk only, due to the 
massive complexity involved in making this only apply in *some* cases.

As such, this bug is really just a dup of bug 243078.

Comment 4

12 years ago
mozilla/toolkit/themes/winstripe/global/menu.css has code for Classic theme - 
could the css I attached (or something similar) be put in there as a partial 

Comment 5

12 years ago
You don't understand, the margins apply *always*. The CSS in that file is NOT 
just for Classic - it is for any theme. The -moz-appearance property overrides 
the background and border only.

Comment 6

12 years ago
So if a transparent border was used instead of a margin, could it be overridden
for non-Classic themes?

.menubar-text {
   -moz-margin-start: 4px !important;
   -moz-margin-end: 3px !important;
   padding-top: 0px;
   padding-bottom: 2px;
   border: 1px solid transparent;

menubar > menu[_moz-menuactive="true"][open="true"] > .menubar-text {
   border-top-width: 2px;
   border-bottom-width: 0px;
   border-left-width: 2px;
   border-right-width: 0px;

Comment 7

12 years ago
That is actually a rather neat idea, however, I should point out the -moz-
appearance only overrides the CSS stuff I mentioned on the element it is set 
on. This means it only overrides stuff on the menu/menuitem, not the .menubar-
text child element.

It has reminded me that I could do a similar trick with the real border on the 
item itself (Gecko supports multiple coloured borders, so it could be 2px and 
half solid half transparent).

I'll see what I can come up with after sorting the regressions caused by the 
rush of bug 243078 (I'm not sure drivers are willing to get a fix for this 
particular issue in, but we'll see).
Ever confirmed: true

Comment 8

12 years ago
(In reply to comment #7)
> It has reminded me that I could do a similar trick with the real border on the 
> item itself (Gecko supports multiple coloured borders, so it could be 2px and 
> half solid half transparent).

I did think of that, but I couldn't find/remember the code for that (or if I'd
just imagined it!). Obviously the other regressions are far more important than
this but at least we've found a way to fix it now.

Comment 9

12 years ago
This (in menu.css) seems to do it:

/* ::::: menu/menuitems in menubar ::::: */

menubar > menu {
  border: 2px solid transparent;
menubar > menu[_moz-menuactive="true"],
menubar > menu[_moz-menuactive="true"][open="true"] {
  color: -moz-MenuBarHoverText;
menubar > menu[_moz-menuactive="true"] {
  -moz-border-top-colors: ThreeDHighlight transparent;
  -moz-border-left-colors: ThreeDHighlight transparent;
  -moz-border-right-colors: ThreeDShadow transparent;
  -moz-border-bottom-colors: ThreeDShadow transparent;
menubar > menu[_moz-menuactive="true"][open="true"] {
  border-top-width: 3px;
  border-left-width: 3px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  -moz-border-top-colors: ThreeDShadow transparent;
  -moz-border-left-colors: ThreeDShadow transparent;
  -moz-border-right-colors: ThreeDHighlight;
  -moz-border-bottom-colors: ThreeDHighlight;

/* ..... internal content .... */

.menubar-left {
  color: inherit;

.menubar-text {
  -moz-margin-start: 6px !important;
  -moz-margin-end: 6px !important;
  padding-top: 0px;
  padding-bottom: 2px;
  color: inherit;

Unfortunately I'm not able to create patches and I don't know what, if anything,
 would need to be changed to stop this from breaking non-Classic themes.


12 years ago
Version: 1.5 Branch → Trunk

Comment 10

12 years ago
Fixed by bug 313388. It shouldn't get regressed by bug 337771, but keep an eye out. :)
Last Resolved: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.