[Pkg-mozext-commits] [greasemonkey] 09/55: GM 3.3beta2+, GM 3.4beta2+: Fix synchronization between popups

David Prévot taffit at moszumanska.debian.org
Thu Oct 29 15:38:02 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository greasemonkey.

commit 28d72d83bdf5bc7acbf43530d99951163983b956
Author: janekptacijarabaci <janekptacijarabaci at seznam.cz>
Date:   Wed Sep 16 19:20:36 2015 +0200

    GM 3.3beta2+, GM 3.4beta2+: Fix synchronization between popups
---
 content/browser.js       | 11 +++++++----
 content/menucommander.js | 12 ++++++------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/content/browser.js b/content/browser.js
index 13f5385..3869dbb 100644
--- a/content/browser.js
+++ b/content/browser.js
@@ -283,19 +283,22 @@ function GM_showPopup(aEvent) {
 
   var mm = getBrowser().mCurrentBrowser.frameLoader.messageManager;
 
+  // See #2276
+  var aEventTarget = aEvent.target;
+
   var callback = null;
   callback = function(message) {
     mm.removeMessageListener("greasemonkey:frame-urls", callback);
 
     var urls = message.data.urls;
-    asyncShowPopup(aEvent, urls);
+    asyncShowPopup(aEventTarget, urls);
   };
 
   mm.addMessageListener("greasemonkey:frame-urls", callback);
   mm.sendAsyncMessage("greasemonkey:frame-urls", {});
 }
 
-function asyncShowPopup(aEvent, urls) {
+function asyncShowPopup(aEventTarget, urls) {
   function uniq(a) {
     var seen = {}, list = [], item;
     for (var i = 0; i < a.length; i++) {
@@ -327,7 +330,7 @@ function asyncShowPopup(aEvent, urls) {
     return mi;
   }
 
-  var popup = aEvent.target;
+  var popup = aEventTarget;
   var scriptsFramedEl = popup.getElementsByClassName("scripts-framed-point")[0];
   var scriptsTopEl = popup.getElementsByClassName("scripts-top-point")[0];
   var scriptsSepEl = popup.getElementsByClassName("scripts-sep")[0];
@@ -373,7 +376,7 @@ function asyncShowPopup(aEvent, urls) {
       function(script) { point = appendScriptAfter(script, point); });
 
   // Propagate to commands sub-menu.
-  GM_MenuCommander.onPopupShowing(aEvent);
+  GM_MenuCommander.onPopupShowing(aEventTarget);
 }
 
 /**
diff --git a/content/menucommander.js b/content/menucommander.js
index c28a938..5892eaa 100644
--- a/content/menucommander.js
+++ b/content/menucommander.js
@@ -43,12 +43,14 @@ GM_MenuCommander.createMenuItem = function(command) {
 GM_MenuCommander.messageMenuCommandResponse = function(aMessage) {
   if (aMessage.data.cookie != GM_MenuCommander.cookieShowing) return;
 
-  GM_MenuCommander.popup.parentNode.disabled = false;
   for (i in aMessage.data.commands) {
     var command = aMessage.data.commands[i];
     var menuItem = GM_MenuCommander.createMenuItem(command);
     GM_MenuCommander.popup.appendChild(menuItem);
   }
+  if (GM_MenuCommander.popup.firstChild) {
+    GM_MenuCommander.popup.parentNode.disabled = false;
+  }
 };
 
 
@@ -58,11 +60,9 @@ GM_MenuCommander.onPopupHiding = function() {
 };
 
 
-GM_MenuCommander.onPopupShowing = function(aEvent) {
-  if (!GM_MenuCommander.popup) {
-    GM_MenuCommander.popup = aEvent.target.querySelector(
-        'menupopup.greasemonkey-user-script-commands-popup');
-  }
+GM_MenuCommander.onPopupShowing = function(aEventTarget) {
+  GM_MenuCommander.popup = aEventTarget.querySelector(
+      'menupopup.greasemonkey-user-script-commands-popup');
 
   GM_MenuCommander.messageCookie++;
   GM_MenuCommander.cookieShowing = GM_MenuCommander.messageCookie;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/greasemonkey.git



More information about the Pkg-mozext-commits mailing list