summaryrefslogtreecommitdiffstats
path: root/application/palemoon/components/places/content/browserPlacesViews.js
diff options
context:
space:
mode:
Diffstat (limited to 'application/palemoon/components/places/content/browserPlacesViews.js')
-rw-r--r--application/palemoon/components/places/content/browserPlacesViews.js15
1 files changed, 11 insertions, 4 deletions
diff --git a/application/palemoon/components/places/content/browserPlacesViews.js b/application/palemoon/components/places/content/browserPlacesViews.js
index eec7274a4..8b90dd280 100644
--- a/application/palemoon/components/places/content/browserPlacesViews.js
+++ b/application/palemoon/components/places/content/browserPlacesViews.js
@@ -109,8 +109,15 @@ PlacesViewBase.prototype = {
get selectedNode() {
if (this._contextMenuShown) {
- let popup = document.popupNode;
- return popup._placesNode || popup.parentNode._placesNode || null;
+ let anchor = this._contextMenuShown.triggerNode;
+ if (!anchor)
+ return null;
+
+ if (anchor._placesNode)
+ return this._rootElt == anchor ? null : anchor._placesNode;
+
+ anchor = anchor.parentNode;
+ return this._rootElt == anchor ? null : (anchor._placesNode || null);
}
return null;
},
@@ -176,13 +183,13 @@ PlacesViewBase.prototype = {
},
buildContextMenu: function PVB_buildContextMenu(aPopup) {
- this._contextMenuShown = true;
+ this._contextMenuShown = aPopup;
window.updateCommands("places");
return this.controller.buildContextMenu(aPopup);
},
destroyContextMenu: function PVB_destroyContextMenu(aPopup) {
- this._contextMenuShown = false;
+ this._contextMenuShown = null;
},
_cleanPopup: function PVB_cleanPopup(aPopup, aDelay) {