From 4101b2c7b7efedd9a12fb5097e4d960272a31d17 Mon Sep 17 00:00:00 2001
From: wlt_lain
Date: Thu, 9 May 2013 03:28:06 -0700
Subject: 修正:statusbar_panel.jsからE4X削除対応完了。ダブり表示問題対応。
---
statusbar_panel.js | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
(limited to 'statusbar_panel.js')
diff --git a/statusbar_panel.js b/statusbar_panel.js
index fe2a52b..4720ff7 100644
--- a/statusbar_panel.js
+++ b/statusbar_panel.js
@@ -6,7 +6,7 @@ let INFO = xml` //{{{
xmlns="http://vimperator.org/namespaces/liberator">
wlt
MIT License
-
+
ステータスバー(アドオンバー)にあるパネル(アイコン)をクリックするコマンドを提供します。
@@ -32,6 +32,7 @@ let INFO = xml` //{{{
`;
//}}}
+// https://developer.mozilla.org/en-US/docs/DOM/event.button
let MOUSE_BUTTON_LEFT = 0;
let MOUSE_BUTTON_MIDDLE = 1;
let MOUSE_BUTTON_RIGHT = 2;
@@ -44,7 +45,7 @@ function getImages(panel) {
var anonymousNodes = document.getAnonymousNodes(panel);
for (let [k, anonymousNode] in Iterator(anonymousNodes)) {
let node;
- let result = document.evaluate('descendant-or-self::xul:image', anonymousNode, function() XUL.uri, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
+ let result = document.evaluate('descendant-or-self::xul:image', anonymousNode, function() XUL, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
while ((node = result.iterateNext())) images.push(node);
}
@@ -52,27 +53,28 @@ function getImages(panel) {
}
function makeIcon(panel) {
- var icon = xml``;
+ var icon = xml``;
var image = getImages(panel)[0];
if (image) {
let style = window.getComputedStyle(image, null);
let src = image.src || style.listStyleImage.replace(/^url\("(.+)"\)$/, '$1');
if (src != '') {
- icon.setAttribute('style','list-style-image: url("' + src + '");' + '-moz-image-region: ' + style.MozImageRegion);
+ let style_attr = `list-style-image: url("${src}"); -moz-image-region: ${style.MozImageRegion}`;
+ icon = xml``;
}
}
return icon;
}
function generateStatusbarpaneIDlList(filter) {
- var panels = document.getElementsByTagNameNS(XUL.uri, 'statusbarpanel');
- for ([k, p] in Iterator(panels)) {
- if (p.hidden != true) {
+ var panels = document.getElementsByTagNameNS(XUL, 'statusbarpanel');
+ for (let i = 0; i < panels.length; i++) {
+ if (panels[i].hidden != true) {
yield {
- text: p.id,
+ text: panels[i].id,
desc: 'statusbarpanel',
- icon: makeIcon(p)
+ icon: makeIcon(panels[i])
};
}
}
@@ -115,7 +117,7 @@ commands.addUserCommand(['statusbarpanel'],'click statusbar panel',
liberator.echoerr('No such statusbar panel: ' + id);
return;
}
- var button = MOUSE_BUTTON_LEFT;
+ var button;
switch (args['-button']) {
case 'm': button = MOUSE_BUTTON_MIDDLE; break;
case 'r': button = MOUSE_BUTTON_RIGHT; break;
@@ -139,7 +141,7 @@ commands.addUserCommand(['statusbarpanel'],'click statusbar panel',
context.keys = { text: 'text', description: 'desc', icon: 'icon' };
context.compare = CompletionContext.Sort.unsorted;
context.process = [function (item, text) {
- return xml`{item.icon ? item.icon : ``}{text}`
+ return xml`${item.icon ? item.icon : ``}${text}`
}];
var list = generateStatusbarpaneIDlList(arg);
--
cgit v1.2.3