Полезная информация

На IRC-канале #mozilla-ru можно получить техническую консультацию онлайн и, конечно же, порцию общения.

№122-04-2018 21:04:57

mokujin
Забанен
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 291
UA: Palemoon 27.0

PaleMoon, панель All-tabs - подсветить активную вкладку

Привет.
Вопрос по бравзеру PM у которого есть неплохая панель "Всех вкладок" - правда только одного, активного окна и никак ненастараиваемая; вот в этом, собсно и просьба: подмогните, как подстветить эту самую активную вкладку в панели, если в этой панели не предусмотрено никакой идентификации для активной(и любой другой) вкладки.

Через CSS можно подсветить любой сайт(все вкладки этого сайта) вычислив его по адресу. Примерно так(я весь стиль панели alltabs приводить не буду, только кусок стилей для сайтов, подсветка тенями разных цветов):

скрытый текст

Выделить код

Код:


button.allTabs-preview[image*="vk.com"] > stack > .allTabs-preview-inner {
    box-shadow: 0px 0px 2px 5px #00A0FF !important;
    }

button.allTabs-preview[image*="youtube.com"] > stack > .allTabs-preview-inner {
    box-shadow: 0px 0px 2px 5px #D24000 !important;
    }

button.allTabs-preview[image*="forum.palemoon.org"]:not(:focus) > stack > .allTabs-preview-inner,
button.allTabs-preview[image*="forum.mozilla-russia.org"]:not(:focus) > stack > .allTabs-preview-inner {
    box-shadow: 0px 0px 2px 5px #AE4FFF !important;
    }

button.allTabs-preview[image*="addons.palemoon.org"]:not(:focus) > stack > .allTabs-preview-inner,
button.allTabs-preview[image*="mozilla.net"]:not(:focus) > stack  > .allTabs-preview-inner {
    box-shadow: 0px 0px 2px 5px #00CB33 !important;
    }

button.allTabs-preview[image*="wikipedia.org"] > stack > .allTabs-preview-inner {
    box-shadow: 0px 0px 2px 5px #B4B4B4 !important;
    }

/*button.allTabs-preview[image*="alternatio.org"] > stack > .allTabs-preview-inner > .tabPreview-canvas */
button.allTabs-preview[image*="alternatio.org"] > stack > .allTabs-preview-inner {
    box-shadow: 0px 0px 2px 5px #A9D083 !important;
    }


там всё одно: canvas внутри div и все, никаких больше аттрибутов нет у ячеек.
Скрин http://thumbs2.imagebam.com/b7/53/1f/954afd831702193.jpg

Вот такой вот вопросс: как\можно ли, из CB добавить в эту панель аттрибут "активная вкладка" чтоб его можно было подсветить из CSS ? или сразу, из CB вычислить и подсветить активную вкладку в этой панели.
Писал на форум PM, там слабо; настройкой и подгонкой никто , похоже , не занимается.

Прошу помощи у знатоков, собаку съевших. :rock:

Отредактировано mokujin (22-04-2018 21:33:38)

Отсутствует

 

№223-04-2018 00:11:20

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 816
UA: Firefox 52.0

Re: PaleMoon, панель All-tabs - подсветить активную вкладку

скрытый текст

Выделить код

Код:

((panel, attr = "selected-tab") => addEventListener("popupshowing", {
    style: `
        #allTabs-panel button.allTabs-preview[${attr}] {
            outline: 8px solid red !important;
            outline-offset: -4px !important;
        }
    `,
    handleEvent(e) {
        var url = "data:text/css," + encodeURIComponent(this.style), type;
        var dwu = window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
        dwu.loadSheetUsingURIString(url, type = dwu.USER_SHEET);
        addDestructor(() => {
            dwu.removeSheetUsingURIString(url, type);
            this.TabSelect();
        });
        delete this.style;
        (this.handleEvent = e => this[e.type](e))(e);
    },
    popupshowing(e) {
        if (e.defaultPrevented) return;
        this.TabSelect(true);
        panel.addEventListener("popuphidden", this);
        gBrowser.tabContainer.addEventListener("TabSelect", this);
    },
    popuphidden() {
        panel.removeEventListener("popuphidden", this);
        gBrowser.tabContainer.removeEventListener("TabSelect", this);
    },
    TabSelect(e) {
        var btn = panel.querySelector(`button.allTabs-preview[${attr}]`);
        if (btn) btn.removeAttribute(attr);
        if (e) for(var btn of panel.querySelectorAll("button.allTabs-preview"))
            if (btn._tab.selected) { btn.setAttribute(attr, true); break; }
    }
}, false, panel))(document.getElementById("allTabs-panel") || 1);

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]