summaryrefslogtreecommitdiffstats
path: root/layout/xul/nsXULPopupManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'layout/xul/nsXULPopupManager.h')
-rw-r--r--layout/xul/nsXULPopupManager.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/layout/xul/nsXULPopupManager.h b/layout/xul/nsXULPopupManager.h
index d056322deb..78d2b2648c 100644
--- a/layout/xul/nsXULPopupManager.h
+++ b/layout/xul/nsXULPopupManager.h
@@ -23,6 +23,7 @@
#include "nsIObserver.h"
#include "nsThreadUtils.h"
#include "mozilla/Attributes.h"
+#include "mozilla/FunctionRef.h"
#include "mozilla/widget/InitData.h"
#include "mozilla/widget/NativeMenu.h"
@@ -551,6 +552,13 @@ class nsXULPopupManager final : public nsIDOMEventListener,
void UpdatePopupPositions(nsRefreshDriver* aRefreshDriver);
/**
+ * Get the first nsMenuChainItem that is matched by the matching callback
+ * function provided.
+ */
+ nsMenuChainItem* FirstMatchingPopup(
+ mozilla::FunctionRef<bool(nsMenuChainItem*)> aMatcher) const;
+
+ /**
* Enable or disable anchor following on the popup if needed.
*/
void UpdateFollowAnchor(nsMenuPopupFrame* aPopup);
@@ -733,6 +741,9 @@ class nsXULPopupManager final : public nsIDOMEventListener,
return GetRollupItem(RollupKind::Menu);
}
+ // Add the chain item to the chain and update mPopups to point to it.
+ void AddMenuChainItem(mozilla::UniquePtr<nsMenuChainItem>);
+
// Removes the chain item from the chain and deletes it.
void RemoveMenuChainItem(nsMenuChainItem*);