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

RESOLVED FIXED

Status

()

Firefox
Menus
--
trivial
RESOLVED FIXED
12 years ago
12 years ago

People

(Reporter: James C, Unassigned)

Tracking

Trunk
x86
Windows 98
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

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.
(Reporter)

Comment 1

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

Updated

12 years ago
Blocks: 243078
(Reporter)

Updated

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.
(Reporter)

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 
fix?

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.
(Reporter)

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).
Status: UNCONFIRMED → NEW
Ever confirmed: true
(Reporter)

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.
(Reporter)

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.
(Reporter)

Updated

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. :)
Status: NEW → RESOLVED
Last Resolved: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.