Bug 1316597 Prevent immediate opening and closing of select dropdowns when anchored on selection r=jaws draft
authorbeachjar <beachjar@msu.edu>
Fri, 18 Nov 2016 11:46:42 -0500
changeset 441227 81212eca9eee7b7a550ff43ce335148edc1d09fe
parent 441226 93d6539f820236fc31d88a883455a43aa9012e71
child 537518 24f05145defe3b1d73bff83cf4d3f3ea37666c5a
push id36383
push userbmo:beachjar@msu.edu
push dateFri, 18 Nov 2016 16:53:05 +0000
reviewersjaws
bugs1316597
milestone52.0a1
Bug 1316597 Prevent immediate opening and closing of select dropdowns when anchored on selection r=jaws MozReview-Commit-ID: CkKTh2j2vZF
layout/xul/nsMenuFrame.cpp
--- a/layout/xul/nsMenuFrame.cpp
+++ b/layout/xul/nsMenuFrame.cpp
@@ -544,16 +544,18 @@ nsMenuFrame::ToggleMenuState()
     CloseMenu(false);
   else
     OpenMenu(false);
 }
 
 void
 nsMenuFrame::PopupOpened()
 {
+  gMenuJustOpenedOrClosed = true;
+
   nsWeakFrame weakFrame(this);
   mContent->SetAttr(kNameSpaceID_None, nsGkAtoms::open,
                     NS_LITERAL_STRING("true"), true);
   if (!weakFrame.IsAlive())
     return;
 
   nsMenuParent* menuParent = GetMenuParent();
   if (menuParent) {
@@ -703,18 +705,16 @@ nsMenuFrame::GetAnchor()
 }
 
 void
 nsMenuFrame::OpenMenu(bool aSelectFirstItem)
 {
   if (!mContent)
     return;
 
-  gMenuJustOpenedOrClosed = true;
-
   nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
   if (pm) {
     pm->KillMenuTimer();
     // This opens the menu asynchronously
     pm->ShowMenu(mContent, aSelectFirstItem, true);
   }
 }