diff --git a/content/html/content/src/nsHTMLAtomList.h b/content/html/content/src/nsHTMLAtomList.h index da65106c5c8..5ccc26cff1d 100644 --- a/content/html/content/src/nsHTMLAtomList.h +++ b/content/html/content/src/nsHTMLAtomList.h @@ -67,6 +67,7 @@ HTML_ATOM(alt, "alt") HTML_ATOM(applet, "applet") HTML_ATOM(archive, "archive") HTML_ATOM(area, "area") +HTML_ATOM(autocheck, "autocheck") HTML_ATOM(axis, "axis") HTML_ATOM(background, "background") HTML_ATOM(base, "base") diff --git a/content/shared/public/nsHTMLAtomList.h b/content/shared/public/nsHTMLAtomList.h index da65106c5c8..5ccc26cff1d 100644 --- a/content/shared/public/nsHTMLAtomList.h +++ b/content/shared/public/nsHTMLAtomList.h @@ -67,6 +67,7 @@ HTML_ATOM(alt, "alt") HTML_ATOM(applet, "applet") HTML_ATOM(archive, "archive") HTML_ATOM(area, "area") +HTML_ATOM(autocheck, "autocheck") HTML_ATOM(axis, "axis") HTML_ATOM(background, "background") HTML_ATOM(base, "base") diff --git a/layout/xul/base/src/nsMenuFrame.cpp b/layout/xul/base/src/nsMenuFrame.cpp index d34995021cc..8fd69116919 100644 --- a/layout/xul/base/src/nsMenuFrame.cpp +++ b/layout/xul/base/src/nsMenuFrame.cpp @@ -1610,14 +1610,11 @@ nsMenuFrame::BuildAcceleratorText() void nsMenuFrame::Execute(nsGUIEvent *aEvent) { - if (!aEvent || (aEvent->message != NS_MOUSE_RIGHT_BUTTON_UP && - aEvent->message != NS_CONTEXTMENU)) { - // flip "checked" state if we're a checkbox menu, or - // an un-checked radio menu - // aEvent is null if called from ::Enter(), we do want to flip our check - // in that case - if (mType == eMenuType_Checkbox || - (mType == eMenuType_Radio && !mChecked)) { + // flip "checked" state if we're a checkbox menu, or an un-checked radio menu + if (mType == eMenuType_Checkbox || (mType == eMenuType_Radio && !mChecked)) { + nsAutoString value; + mContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::autocheck, value); + if (!value.Equals(NS_LITERAL_STRING("false"))) { if (mChecked) { mContent->UnsetAttr(kNameSpaceID_None, nsHTMLAtoms::checked, PR_TRUE);