Skip to content

Commit

Permalink
chore: followup bug 1927540 - drop tab into/out of end of tab groups
Browse files Browse the repository at this point in the history
  • Loading branch information
onemen committed Nov 22, 2024
1 parent db7bb58 commit 20d3cea
Showing 1 changed file with 35 additions and 4 deletions.
39 changes: 35 additions & 4 deletions addon/chrome/content/minit/minit.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,31 @@ var TMP_tabDNDObserver = {
return;
}

const makeCode = (function() {
if (Tabmix.isVersion(1340)) {
// since Firefox 134, tabs.js contains some scoped constants
// GROUP_DROP_ACTION_CREATE is used in on_drop and triggerDragOverCreateGroup
// GROUP_DROP_ACTION_APPEND is used in on_drop and _animateTabMove

// @ts-expect-error
// eslint-disable-next-line no-unused-vars
const GROUP_DROP_ACTION_CREATE = 0x1;
// @ts-expect-error
// eslint-disable-next-line no-unused-vars
const GROUP_DROP_ACTION_APPEND = 0x2;

/** @param {string | Function} code */
return function(code) {
return eval(Tabmix._localMakeCode)(null, code.toString());
};
}

/** @param {string | Function} code */
return function(code) {
return Tabmix._makeCode(null, code.toString());
};
}());

this._moveTabOnDragging = Tabmix.prefs.getBoolPref("moveTabOnDragging");

Tabmix.getMovingTabsWidth = movingTabs => {
Expand Down Expand Up @@ -111,11 +136,11 @@ var TMP_tabDNDObserver = {

gBrowser.tabContainer._dragOverCreateGroupTimer = 0;

gBrowser.tabContainer._triggerDragOverCreateGroup = Tabmix.getPrivateMethod(
gBrowser.tabContainer._triggerDragOverCreateGroup = makeCode(Tabmix.getPrivateMethod(
"tabbrowser-tabs",
"triggerDragOverCreateGroup",
"#clearDragOverCreateGroupTimer"
);
));
}

function tabmixHandleMoveString() {
Expand Down Expand Up @@ -199,7 +224,13 @@ var TMP_tabDNDObserver = {
)._replace(
/let lastTabCenter = (.*)tabSize \/ 2;/,
'let lastTabCenter = $1(this.verticalMode ? tabSize / 2 : rightTabWidth / 2);'
).toCode();
);

if (Tabmix.isVersion(1340)) {
gBrowser.tabContainer._animateTabMove = makeCode(_animateTabMove.value);
} else {
_animateTabMove.toCode();
}
} else {
// helper function to get floorp strings for width in vertical mode
/** @param {string} vertical @param {string} horizontal */
Expand Down Expand Up @@ -325,7 +356,7 @@ var TMP_tabDNDObserver = {
*/
function patchDragMethod(name, code) {
if (Tabmix.isVersion(1320)) {
code.toCode(false, Tabmix.originalFunctions, `_tabmix_${name}`);
Tabmix.originalFunctions[`_tabmix_${name}`] = makeCode(code.value);
Tabmix.originalFunctions[name] = gBrowser.tabContainer[name];
gBrowser.tabContainer[name] = function(event) {
const methodName = this.verticalMode ? name : `_tabmix_${name}`;
Expand Down

0 comments on commit 20d3cea

Please sign in to comment.