Index: lib/ui.js |
=================================================================== |
--- a/lib/ui.js |
+++ b/lib/ui.js |
@@ -34,7 +34,7 @@ |
let CustomizableUI = null; |
/** |
- * Filter corresponding with "disable on site" menu item (set in fillIconMent()). |
+ * Filter corresponding with "disable on site" menu item (set in fillIconMenu()). |
* @type Filter |
*/ |
let siteWhitelist = null; |
@@ -387,8 +387,6 @@ |
this.overlay.all[0].appendChild(menuSource); |
if ("abp-toolbarbutton" in this.overlay) |
this.overlay["abp-toolbarbutton"].appendChild(fixId(menuSource.cloneNode(true), "abp-toolbar")); |
- if ("abp-menuitem" in this.overlay) |
- this.overlay["abp-menuitem"].appendChild(fixId(menuSource.cloneNode(true), "abp-menuitem")); |
} |
}, |
@@ -563,6 +561,7 @@ |
element.addEventListener(event, handler.bind(null, window), false); |
} |
window.addEventListener("popupshowing", this.onPopupShowing, false); |
+ window.addEventListener("popuphiding", this.onPopupHiding, false); |
window.addEventListener("keypress", this.onKeyPress, false); |
addBrowserLocationListener(window, function() |
@@ -626,6 +625,7 @@ |
} |
window.removeEventListener("popupshowing", this.onPopupShowing, false); |
+ window.removeEventListener("popuphiding", this.onPopupHiding, false); |
window.removeEventListener("keypress", this.onKeyPress, false); |
removeBrowserLocationListeners(window); |
removeBrowserClickListeners(window); |
@@ -1290,9 +1290,36 @@ |
this.fillIconTooltip(event, popup.ownerDocument.defaultView); |
else |
{ |
- let match = /^(abp-(?:toolbar|status|menuitem)-)popup$/.exec(popup.id); |
+ let match = /^(abp-(toolbar|status|menuitem)-)popup$/.exec(popup.id); |
if (match) |
- this.fillIconMenu(event, popup.ownerDocument.defaultView, match[1]); |
+ { |
+ let [, prefix, name] = match; |
+ if (name == "toolbar" || name == "status") |
+ { |
+ let window = popup.ownerDocument.defaultView; |
+ let browser = window.document.getElementById(prefix + "popup-browser"); |
+ browser.setAttribute("src", "chrome://adblockplus/content/ui/popup.html"); |
+ } |
+ else |
+ this.fillIconMenu(event, popup.ownerDocument.defaultView, match[1]); |
+ } |
+ } |
+ }, |
+ |
+ /** |
+ * Called when some pop-up in the application window is being hidden |
+ */ |
+ onPopupHiding: function(/**Event*/ event) |
+ { |
+ if (event.defaultPrevented) |
+ return; |
+ |
+ let popup = event.originalTarget; |
+ if (popup.id == "abp-toolbar-popup") |
+ { |
+ let window = popup.ownerDocument.defaultView; |
+ let browser = window.document.getElementById("abp-toolbar-popup-browser"); |
+ browser.setAttribute("src", "about:blank"); |
} |
}, |
@@ -1925,6 +1952,7 @@ |
} |
}; |
UI.onPopupShowing = UI.onPopupShowing.bind(UI); |
+UI.onPopupHiding = UI.onPopupHiding.bind(UI); |
UI.onKeyPress = UI.onKeyPress.bind(UI); |
UI.onIconClick = UI.onIconClick.bind(UI); |
UI.init(); |