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:
timeless%mozdev.org 2002-11-18 14:01:20 +00:00
Родитель eb1a2a9b41
Коммит 7e61bc0fee
3 изменённых файлов: 7 добавлений и 8 удалений

Просмотреть файл

@ -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);