Closed Bug 288082 Opened 19 years ago Closed 2 years ago

Native theme code doesn't understand menubuttons

Categories

(Core :: Widget: Win32, defect)

defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: neil, Assigned: kliu)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Unlike ordinary buttons, menubuttons don't have hover and active state, instead
they have hover and open state. Dual menubuttons of course have hover, active
and open state. Before hover and active were heirarchical this didn't matter a
lot because hovering or clicking on menuitems was ignored by the button, but now
all native theme implementations are erroneously reacting to the hover and
active states on their menuitems.

You can see the problem by opening the Back button menu and hovering over the
back items - in some cases mousing out of the window causes an effect too!

If you remove or override the -moz-appearance styles then you should see a
consistent effect (which is to display open as active hover).

I imagine the XP part of the fix is to create an IsOpenButton utility method
which all of the individual implementations use to force active hover.

We may also want to inherit the open attribute into the dual button.
Assignee: general → nobody
Blocks: 216266, 219650, 438043
QA Contact: ian → general
Attached patch WIPSplinter Review
This works; there are just some loose ends to tie up, like RTL compatibility for dual buttons and I need to audit what CSS needs to be changed.
Assignee: nobody → kliu
Status: NEW → ASSIGNED
And I'll eventually need someone to help w/ any changes that may be needed for Mac as I don't have one; I need to update my Linux box so that I could test this there...
Keywords: regression
Depends on: 441452
Okay, making the dual buttons RTL-compatible will be trivial once bug 441452 lands.

There is one issue that needs some discussing.  When using native dual/split button rendering, Windows draws a drop-down arrow for the drop button.

Option 1: Implement bug 431666 and don't use a GIF arrow whenever we are themed (the default theme selector is inappropriate here) and using a dualbutton drop-down.

Option 2: Draw arrows in the native theme code so that we can stop relying on GIF/PNG drop-down arrows completely.  If done right, this means that we could also fix all those problems with arrows on dark backgrounds.  It's unclear when (or if) support for using SVG for UI stuff would be enabled (and even then, it can't be as efficient as this), so I strongly favor this option.
The second option certainly sounds more appealing (and more complex).
(In reply to comment #4)
> Option 2: Draw arrows in the native theme code so that we can stop relying on
> GIF/PNG drop-down arrows completely.
IMHO we can never stop relying on GIF/PNG arrows unless you're prepared to write all native theme code for all current and future GFX ports ;-)
(In reply to comment #6)
> (In reply to comment #4)
> > Option 2: Draw arrows in the native theme code so that we can stop relying on
> > GIF/PNG drop-down arrows completely.
> IMHO we can never stop relying on GIF/PNG arrows unless you're prepared to
> write all native theme code for all current and future GFX ports ;-)
> 

s/completely/completely for the default Windows theme/  :)
(In reply to comment #7)
> s/completely/completely for the default Windows theme/  :)
Except the Windows theme is the global default theme; of course the Mac has its own theme but Unix and OS/2 simply override a selected few files.
Component: GFX → Widget: Win32
QA Contact: general → win32
Depends on: 410719

Support for menubuttons was removed in bug 1457218.

Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: