diff --git a/mozilla/content/xul/content/src/nsXULElement.cpp b/mozilla/content/xul/content/src/nsXULElement.cpp index 5d7004c78b1..e39af9878b8 100644 --- a/mozilla/content/xul/content/src/nsXULElement.cpp +++ b/mozilla/content/xul/content/src/nsXULElement.cpp @@ -631,19 +631,23 @@ nsXULElement::PerformAccesskey(PRBool aKeyCausesActivation, return; nsCOMPtr elm(do_QueryInterface(content)); - - // Define behavior for each type of XUL element. - nsIAtom *tag = content->Tag(); - if (tag == nsGkAtoms::textbox || tag == nsGkAtoms::menulist) { - // if it's a text box or menulist, give it focus - elm->Focus(); - } else if (tag == nsGkAtoms::toolbarbutton) { - // if it's a toolbar button, just click - elm->Click(); - } else { - // otherwise, focus and click in it - elm->Focus(); - elm->Click(); + if (elm) { + // Define behavior for each type of XUL element. + nsIAtom *tag = content->Tag(); + if (tag == nsGkAtoms::textbox || tag == nsGkAtoms::menulist) { + // if it's a text box or menulist, give it focus + elm->Focus(); + } else if (tag == nsGkAtoms::toolbarbutton) { + // if it's a toolbar button, just click + elm->Click(); + } else { + // otherwise, focus and click in it + elm->Focus(); + elm->Click(); + } + } + else { + content->PerformAccesskey(aKeyCausesActivation, aIsTrustedEvent); } }