зеркало из https://github.com/mozilla/pjs.git
Bug 96229 keyboard (and right mouse in context menu) doesn't autocheck menuitem type="checkbox" and type="radio"
patch by neil@parkwaycc.co.uk r=aaronl sr=bz
This commit is contained in:
Родитель
eb1a2a9b41
Коммит
7e61bc0fee
|
@ -67,6 +67,7 @@ HTML_ATOM(alt, "alt")
|
||||||
HTML_ATOM(applet, "applet")
|
HTML_ATOM(applet, "applet")
|
||||||
HTML_ATOM(archive, "archive")
|
HTML_ATOM(archive, "archive")
|
||||||
HTML_ATOM(area, "area")
|
HTML_ATOM(area, "area")
|
||||||
|
HTML_ATOM(autocheck, "autocheck")
|
||||||
HTML_ATOM(axis, "axis")
|
HTML_ATOM(axis, "axis")
|
||||||
HTML_ATOM(background, "background")
|
HTML_ATOM(background, "background")
|
||||||
HTML_ATOM(base, "base")
|
HTML_ATOM(base, "base")
|
||||||
|
|
|
@ -67,6 +67,7 @@ HTML_ATOM(alt, "alt")
|
||||||
HTML_ATOM(applet, "applet")
|
HTML_ATOM(applet, "applet")
|
||||||
HTML_ATOM(archive, "archive")
|
HTML_ATOM(archive, "archive")
|
||||||
HTML_ATOM(area, "area")
|
HTML_ATOM(area, "area")
|
||||||
|
HTML_ATOM(autocheck, "autocheck")
|
||||||
HTML_ATOM(axis, "axis")
|
HTML_ATOM(axis, "axis")
|
||||||
HTML_ATOM(background, "background")
|
HTML_ATOM(background, "background")
|
||||||
HTML_ATOM(base, "base")
|
HTML_ATOM(base, "base")
|
||||||
|
|
|
@ -1610,14 +1610,11 @@ nsMenuFrame::BuildAcceleratorText()
|
||||||
void
|
void
|
||||||
nsMenuFrame::Execute(nsGUIEvent *aEvent)
|
nsMenuFrame::Execute(nsGUIEvent *aEvent)
|
||||||
{
|
{
|
||||||
if (!aEvent || (aEvent->message != NS_MOUSE_RIGHT_BUTTON_UP &&
|
// flip "checked" state if we're a checkbox menu, or an un-checked radio menu
|
||||||
aEvent->message != NS_CONTEXTMENU)) {
|
if (mType == eMenuType_Checkbox || (mType == eMenuType_Radio && !mChecked)) {
|
||||||
// flip "checked" state if we're a checkbox menu, or
|
nsAutoString value;
|
||||||
// an un-checked radio menu
|
mContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::autocheck, value);
|
||||||
// aEvent is null if called from ::Enter(), we do want to flip our check
|
if (!value.Equals(NS_LITERAL_STRING("false"))) {
|
||||||
// in that case
|
|
||||||
if (mType == eMenuType_Checkbox ||
|
|
||||||
(mType == eMenuType_Radio && !mChecked)) {
|
|
||||||
if (mChecked) {
|
if (mChecked) {
|
||||||
mContent->UnsetAttr(kNameSpaceID_None, nsHTMLAtoms::checked,
|
mContent->UnsetAttr(kNameSpaceID_None, nsHTMLAtoms::checked,
|
||||||
PR_TRUE);
|
PR_TRUE);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче