buftab.jsをPanoramaに対応
5563 ワード
追記 : Vimperator - buftabs.jsをFirefox29.1に対応 - Qiita
概要
buftab.jsがPanoramaに対応しておらず、別のタブグループのタブもまとめて表示されていました。
そのためタブを切り替える際に表示順の切り替えができず不便だったので現在使っているPanoramaのタブのみを表示するように変更しました。
パッチ
$ diff -u buftabs.js.old buftabs.js
--- buftabs.js.old
+++ buftabs.js
@@ -1,5 +1,5 @@
// {{{ Information
-var INFO =
+let INFO = xml`
<plugin name="buftabs" version="1.0"
href="http://git.glacicle.org/vimperator-buftabs/"
summary="Buftabs: show the tabbar in the statusline"
@@ -34,7 +34,7 @@
Set to 0 for unlimited.
</description>
</item>
-</plugin>;
+</plugin>;`;
// }}}
buftabs = {
@@ -48,12 +48,12 @@
var position=0, selpos;
// Make sure we have an appropriate amount of labels
- while (btabs.childNodes.length > browsers.length)
+ while (btabs.childNodes.length > window.gBrowser.visibleTabs.length)
{
btabs.removeChild(btabs.lastChild);
}
- while (btabs.childNodes.length < browsers.length)
+ while (btabs.childNodes.length < window.gBrowser.visibleTabs.length)
{
var label = document.createElement("label");
btabs.appendChild(label);
@@ -68,10 +68,11 @@
}
// Create the new tabs
- for (let i=0; i < browsers.length; i++)
+ for (let i=0; i < window.gBrowser.visibleTabs.length; i++)
{
+ var tabnum = window.gBrowser.tabContainer.getIndexOfItem(window.gBrowser.visibleTabs[i]);
// Create label
- var browser = browsers[i];
+ var browser = browsers[tabnum];
var label = btabs.childNodes[i];
// Hook on load
@@ -85,10 +86,11 @@
}
// Fill label
- label.tabpos = i;
+ label.tabpos = tabnum;
+ label.num = i;
buftabs.fillLabel(label, browser);
- if (tabs.index() == label.tabpos)
+ if (tabs.index() == tabnum)
{
selpos = [position, label.clientWidth+position];
}
@@ -105,7 +107,8 @@
btabs.scrollLeft = 0;
// Empty url label
- urlWidget.value = "";
+ statusline.updateField("location","");
+ liberator.echo(buffer.URL,2);
},
// Fill a label with browser content
@@ -131,7 +134,7 @@
tabvalue += "\u2764";
// Brackets and index
- tabvalue = "["+(label.tabpos+1)+"-"+tabvalue+"]";
+ tabvalue = "["+(label.num+1)+"-"+tabvalue+"]";
label.setAttribute("value", tabvalue);
@@ -140,28 +143,23 @@
label.setAttributeNS(NS.uri, "highlight", "BufTabSelected");
else
label.setAttributeNS(NS.uri, "highlight", "BufTab");
-
-
},
// Create the horizontal box for adding the tabs to
createBar: function()
{
- var statusline = document.getElementById("liberator-statusline");
+ var addonbar = document.getElementById("addon-bar");
var buftabs = document.getElementById("liberator-statusline-buftabs");
- var urlWidget = document.getElementById("liberator-statusline-field-url");
-
// Only create if it doesn't exist yet
if (!buftabs)
{
buftabs = document.createElement("hbox");
buftabs.setAttribute("id", "liberator-statusline-buftabs");
buftabs.setAttribute("flex", "1");
- buftabs.style.overflow = "hidden"
-
- statusline.insertBefore(buftabs, urlWidget);
+ buftabs.style.overflow = "hidden";
+ addonbar.insertBefore(buftabs, addonbar.firstChild);
}
- },
+ },
destroyBar: function()
{
@@ -197,13 +195,12 @@
window.getBrowser().addEventListener("load", function (event) {
if (options.get("buftabs").get())
statusline.updateUrl();
-}, false);
+}, true);
/// Initialise highlight groups
-highlight.loadCSS(String(<![CDATA[
- BufTab
- BufTabSelected font-weight: bold;
-]]>));
+highlight.loadCSS(['BufTab',
+ 'BufTabSelected font-weight: bold;'
+].join("\n"));
/// Options
options.add(["buftabs"],
Author And Source
この問題について(buftab.jsをPanoramaに対応), 我々は、より多くの情報をここで見つけました https://qiita.com/yuki_ycino/items/802ffbd69c1da4035021著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .