From 2cda4f73c0e111a3c8f79456eeda7098ec04ea9d Mon Sep 17 00:00:00 2001 From: "neil%parkwaycc.co.uk" Date: Fri, 14 Oct 2005 09:37:22 +0000 Subject: [PATCH] Bug 291099 menuitem context menus arrow keys doubled r=aaronlev sr=dbaron a=asa git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@182245 18797224-902f-48f8-a5cc-f745e15eee43 --- .../layout/xul/base/src/nsPopupSetFrame.cpp | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/mozilla/layout/xul/base/src/nsPopupSetFrame.cpp b/mozilla/layout/xul/base/src/nsPopupSetFrame.cpp index aa5135b5a67..71690e12947 100644 --- a/mozilla/layout/xul/base/src/nsPopupSetFrame.cpp +++ b/mozilla/layout/xul/base/src/nsPopupSetFrame.cpp @@ -494,21 +494,23 @@ nsPopupSetFrame::OpenPopup(nsPopupFrameList* aEntry, PRBool aActivateFlag) ActivatePopup(aEntry, PR_TRUE); // register the rollup listeners, etc, but not if we're a tooltip - nsIFrame* activeChild = aEntry->mPopupFrame; - nsIMenuParent* childPopup = nsnull; - if (activeChild) - CallQueryInterface(activeChild, &childPopup); - if (!aEntry->mPopupType.EqualsLiteral("tooltip")) + if (!aEntry->mPopupType.EqualsLiteral("tooltip")) { + nsIFrame* activeChild = aEntry->mPopupFrame; + nsIMenuParent* childPopup = nsnull; + if (activeChild) + CallQueryInterface(activeChild, &childPopup); + + // Tooltips don't get keyboard navigation + if (childPopup && !nsMenuFrame::sDismissalListener) { + // First check and make sure this popup wants keyboard navigation + nsAutoString property; + aEntry->mPopupContent->GetAttr(kNameSpaceID_None, nsXULAtoms::ignorekeys, property); + if (!property.EqualsLiteral("true")) + childPopup->InstallKeyboardNavigator(); + } + UpdateDismissalListener(childPopup); - - // First check and make sure this popup wants keyboard navigation - nsAutoString property; - // Tooltips don't get keyboard navigation - aEntry->mPopupContent->GetAttr(kNameSpaceID_None, nsXULAtoms::ignorekeys, property); - if (!property.EqualsLiteral("true") && - childPopup && - !aEntry->mPopupType.EqualsLiteral("tooltip")) - childPopup->InstallKeyboardNavigator(); + } } else { if (aEntry->mCreateHandlerSucceeded && !OnDestroy(aEntry->mPopupContent))