Closed
Bug 567782
Opened 14 years ago
Closed 14 years ago
Fix theme for menuitems of type radio that can be both checked and selected
Categories
(Toolkit :: Themes, defect)
Tracking
()
RESOLVED
FIXED
mozilla1.9.3a5
People
(Reporter: iannbugzilla, Assigned: iannbugzilla)
References
Details
Attachments
(1 file, 4 obsolete files)
1.73 KB,
patch
|
dao
:
review+
mstange
:
feedback+
|
Details | Diff | Splinter Review |
Menuitems with type="radio" can have their attributes checked and selected both set to true causing a double checkmark to appear, see http://mxr.mozilla.org/mozilla-central/source/toolkit/themes/pinstripe/global/menu.css#199 onwards
This patch: * Modifies selected="true" not to bother if menuitem has type="radio".
Assignee: nobody → iann_bugzilla
Status: NEW → ASSIGNED
Attachment #447102 -
Flags: feedback?(stefanh)
Attachment #447102 -
Flags: feedback?(mstange)
Attachment #447102 -
Flags: feedback?(stefanh)
Attachment #447102 -
Flags: feedback?(mstange)
Patch without extraneous logging.
Attachment #447102 -
Attachment is obsolete: true
Attachment #447106 -
Flags: feedback?(stefanh)
Attachment #447106 -
Flags: feedback?(mstange)
Comment 3•14 years ago
|
||
Comment on attachment 447106 [details] [diff] [review] Fix pinstripe's menu.css patch v0.1a People shouldn't be setting both checked and selected on a menuitem, so this bug is about graceful error handling, right? Then using :not([checked="true"]) instead of :not([type="radio"]) would protect us even in cases where the author didn't set type="radio".
(In reply to comment #3) > (From update of attachment 447106 [details] [diff] [review]) > People shouldn't be setting both checked and selected on a menuitem, so this > bug is about graceful error handling, right? Then using :not([checked="true"]) > instead of :not([type="radio"]) would protect us even in cases where the author > didn't set type="radio". Menuitems in a menupopup cannot avoid having selected, it's type="radio" that introduces the ability to have checked as well. You are correct that having :not([checked="true"]) would have greater protection.
Attachment #447106 -
Flags: feedback?(stefanh)
Attachment #447106 -
Flags: feedback?(mstange)
Changes since v0.1a: * Use :not on checked="true" now.
Attachment #447106 -
Attachment is obsolete: true
Attachment #447129 -
Flags: feedback?(mstange)
Attachment #447129 -
Flags: feedback?(stefanh)
Comment 6•14 years ago
|
||
Comment on attachment 447129 [details] [diff] [review] Fix pinstripe's menu.css (checked true) patch v0.1b thanks
Attachment #447129 -
Flags: feedback?(mstange) → feedback+
Attachment #447129 -
Flags: review?(dao)
Updated•14 years ago
|
Attachment #447129 -
Flags: review?(dao) → review+
Comment 7•14 years ago
|
||
Comment on attachment 447129 [details] [diff] [review] Fix pinstripe's menu.css (checked true) patch v0.1b Shouldn't we always display the checkmark character in checked/selected menulist menuitems?
Comment 8•14 years ago
|
||
Stefan showed me that bug 521927 adds an actual use case for checked="true" in menulists, which I hadn't realized. So this bug is not just about graceful error handling. I agree with Stefan: in order to make this look correct, we should extend the ::before-checkmarker to apply for checked="true", too, and add :not([selected="true"]) for the checkmark image.
Comment 9•14 years ago
|
||
Ian, I won't be able to give feedback on a new patch since I'll be away from now on. But that shouldn't be a problem.
Attachment #447129 -
Flags: feedback?(stefanh)
Assignee | ||
Comment 10•14 years ago
|
||
Changes since v0.1b: * Extend to include checked="true" and :not selected="false" Requesting feedback to confirm this is what is needed.
Attachment #447129 -
Attachment is obsolete: true
Attachment #447585 -
Flags: review+
Attachment #447585 -
Flags: feedback?(mstange)
Comment 11•14 years ago
|
||
Hm, looks like I had something different in mind than what I said. I think something like this would be good: -menuitem[checked="true"][_moz-menuactive="true"] > .menu-iconic-left, +:not(menulist) > menupopup > menuitem[checked="true"][_moz-menuactive="true"] > .menu-iconic-left, :not(menulist) > menupopup > menuitem[selected="true"][_moz-menuactive="true"] > .menu-iconic-left { background-image: -moz-image-rect("chrome://global/skin/menu/menu-check.png", 0, 20, 11, 10); } -menulist:not([editable="true"]) > menupopup > menuitem[selected="true"]::before { +menulist:not([editable="true"]) > menupopup > menuitem[selected="true"]::before, +menulist:not([editable="true"]) > menupopup > menuitem[checked="true"]::before { content: '\2713'; /* a checkmark */ display: block; width: 15px; -moz-margin-start: -15px; } In other words: For menulists, use ::before, regardless of whether checked or selected was used; and for non-menulists use the image for both. Sorry for being unclear.
Attachment #447585 -
Flags: feedback?(mstange)
Assignee | ||
Comment 12•14 years ago
|
||
Changes since v0.1c: * As per feedback only ones in :not menulists use the image, ones in menulists use the checkmark. Is it okay what happens to ones that are in editable menulists?
Attachment #447585 -
Attachment is obsolete: true
Attachment #447615 -
Flags: review+
Attachment #447615 -
Flags: feedback?(mstange)
Comment 13•14 years ago
|
||
Comment on attachment 447615 [details] [diff] [review] Fix pinstripe's menu.css (menulist vs :not) patch v0.1d [Checkin: Comment 16] Thanks, this looks perfect. As far as I know, editable menulists should never have any checkmarks.
Attachment #447615 -
Flags: feedback?(mstange) → feedback+
Updated•14 years ago
|
Attachment #447615 -
Flags: review+
Assignee | ||
Comment 14•14 years ago
|
||
Comment on attachment 447615 [details] [diff] [review] Fix pinstripe's menu.css (menulist vs :not) patch v0.1d [Checkin: Comment 16] I was carrying forward the r= but I guess you want a new request.
Attachment #447615 -
Flags: review?(dao)
Comment 15•14 years ago
|
||
Comment on attachment 447615 [details] [diff] [review] Fix pinstripe's menu.css (menulist vs :not) patch v0.1d [Checkin: Comment 16] Yeah, this is quite different from the first patch, reviews don't work like that. However you can just count mstange's "feedback" as a review with moa=me.
Attachment #447615 -
Flags: review?(dao) → review+
Assignee | ||
Comment 16•14 years ago
|
||
Comment on attachment 447615 [details] [diff] [review] Fix pinstripe's menu.css (menulist vs :not) patch v0.1d [Checkin: Comment 16] http://hg.mozilla.org/mozilla-central/rev/8b5cbcb481bd
Attachment #447615 -
Attachment description: Fix pinstripe's menu.css (menulist vs :not) patch v0.1d → Fix pinstripe's menu.css (menulist vs :not) patch v0.1d [Checkin: Comment 16]
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.3a5
Comment 17•14 years ago
|
||
>-menuitem[checked="true"] > .menu-iconic-left, >+:not(menulist) > menupopup > menuitem[checked="true"] > .menu-iconic-left, > :not(menulist) > menupopup > menuitem[selected="true"] > .menu-iconic-left { You could have simplified all this by using -moz-any() :not(menulist) > menupopup > -moz-any(menuitem[checked="true"], menuitem[selected="true"]) > .menu-iconic-left, See http://dbaron.org/log/20100424-any
You need to log in
before you can comment on or make changes to this bug.
Description
•