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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№122-04-2018 21:04:57

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 494
UA: Firefox 52.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 и все, никаких больше аттрибутов нет у ячеек.
Скрин 954afd831702193.jpg

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

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

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


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№223-04-2018 00:11:20

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
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–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]