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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№5118-09-2019 18:16:05

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

Re: [CB]Session Bookmarks

Infocatcher пишет

Если вдруг кто-то захочет поиграться

Да, поигрался на Firefox 69. И так, и сяк, глухо вообще.
В результате решил попробовать по координатам, вроде работает.
Добавил в конец кода, чтобы мне удобней было прокручивать.

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

Выделить код

Код:

this.bookmarks.fixer = ({
    bm: this.bookmarks,
    init: function() {
        addEventListener("dragstart", this, false, gBrowser.tabs[0].flattenedTreeParentNode);
        return this;
    },
    getRect: function(node) {
        var x = node.screenX, y = node.screenY;
        return [x, x + node.clientWidth, y, y + node.clientHeight];
    },
    pointInRect: function(x, y, rect) {
        var [lx, rx, ty, by] = rect;
        return x >= lx && x <= rx && y >= ty && y <= by;
    },
    handleEvent: function(e) {
        this.btnRect = this.getRect(this.bm.button);
    },
    fix: function(e) {
        var x = e.screenX, y = e.screenY;
        var res = this.pointInRect(x, y, this.btnRect);
        if(res)
            res = this.bm.button;
        else if(this.bm.button.open) {
            var box = this.bm.mp.children[0]
                .flattenedTreeParentNode.parentNode;

            var arr = [box._scrollButtonUp, box._scrollButtonDown]
                .concat(Array.from(this.bm.mp.children));

            res = arr.find(function(node) {
                return this.pointInRect(x, y, this.getRect(node));
            }, this);
            if(res) {
                if(res.localName == "toolbarbutton") {
                    res.dispatchEvent(new MouseEvent("mouseover", {}));
                    return;
                }
                box._stopScroll();
            }
        }
        if(res) return {
            target: res,

            screenX: x,
            screenY: y,
            type: e.type,
            dataTransfer: e.dataTransfer,
            preventDefault: e.preventDefault.bind(e),
            stopPropagation: e.stopPropagation.bind(e)
        };
    }
}).init();

this.bookmarks.fixTabDrop = function(e) {
    if(!e.dataTransfer.types.contains("application/x-moz-tabbrowser-tab"))
        return false;

    e = this.fixer.fix(e);
    if(!e)
        return false;

    e.stopPropagation();
    if(e.type == "dragover")
        this.handleDragOver(e);
    else
        this.handleDrop(e);
    return true;
}

Отсутствует

 

№5221-03-2020 23:32:30

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 74.0

Re: [CB]Session Bookmarks

Infocatcher
Не нашёл тему, поэтому здесь. Есть рабочая Bookmarks Folder для [firefox] 74?

Отредактировано voqabuhe (21-03-2020 23:33:24)

Отсутствует

 

№5322-03-2020 15:14:37

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 56.0

Re: [CB]Session Bookmarks

voqabuhe
Тема все-таки была, ответил в ней: https://forum.mozilla-russia.org/viewto … 38#p779438 (рабочей кнопки нет…)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5427-09-2023 12:36:08

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1160
UA: Firefox 118.0

Re: [CB]Session Bookmarks

Копка отвалилась в [firefox] 117. Может и раньше, давно не проверял. Можно поправить (очень удобная, несмотря на некоторые косяки в новых версиях)?

Отсутствует

 

Board footer

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