Bug 1949840 - Rename dropTab and dropTabs methods now that we use them not just for dropping. r=dwalker,tabbrowser-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D239189
This commit is contained in:
Dão Gottwald
2025-02-21 21:23:27 +00:00
parent c7e8b2807a
commit bbf8ed375a
2 changed files with 61 additions and 30 deletions

View File

@@ -5788,11 +5788,43 @@
/**
* @param {MozTabbrowserTab} tab
* @param {MozTabbrowserTab|MozTabbrowserTabGroup} targetElement
* @param {boolean} dropBefore
*/
dropTab(tab, targetElement, dropBefore) {
moveTabBefore(tab, targetElement) {
this.#moveTabNextTo(tab, targetElement, true);
}
/**
* @param {MozTabbrowserTab[]} tabs
* @param {MozTabbrowserTab|MozTabbrowserTabGroup} targetElement
*/
moveTabsBefore(tabs, targetElement) {
this.#moveTabsNextTo(tabs, targetElement, true);
}
/**
* @param {MozTabbrowserTab} tab
* @param {MozTabbrowserTab|MozTabbrowserTabGroup} targetElement
*/
moveTabAfter(tab, targetElement) {
this.#moveTabNextTo(tab, targetElement, false);
}
/**
* @param {MozTabbrowserTab[]} tabs
* @param {MozTabbrowserTab|MozTabbrowserTabGroup} targetElement
*/
moveTabsAfter(tabs, targetElement) {
this.#moveTabsNextTo(tabs, targetElement, false);
}
/**
* @param {MozTabbrowserTab} tab
* @param {MozTabbrowserTab|MozTabbrowserTabGroup} targetElement
* @param {boolean} moveBefore
*/
#moveTabNextTo(tab, targetElement, moveBefore = false) {
this._handleTabMove(tab, () => {
if (dropBefore) {
if (moveBefore) {
this.tabContainer.insertBefore(tab, targetElement);
} else if (targetElement) {
targetElement.after(tab);
@@ -5805,12 +5837,12 @@
/**
* @param {MozTabbrowserTab[]} tabs
* @param {MozTabbrowserTab|MozTabbrowserTabGroup} targetElement
* @param {dropBefore} dropBefore
* @param {boolean} moveBefore
*/
dropTabs(tabs, targetElement, dropBefore) {
this.dropTab(tabs[0], targetElement, dropBefore);
#moveTabsNextTo(tabs, targetElement, moveBefore = false) {
this.#moveTabNextTo(tabs[0], targetElement, moveBefore);
for (let i = 1; i < tabs.length; i++) {
this.dropTab(tabs[i], tabs[i - 1]);
this.#moveTabNextTo(tabs[i], tabs[i - 1]);
}
}

View File

@@ -1096,6 +1096,21 @@
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
}
let moveTabs = () => {
if (dropIndex !== undefined) {
for (let tab of movingTabs) {
gBrowser.moveTabTo(tab, dropIndex);
if (!directionForward) {
dropIndex++;
}
}
} else if (dropBefore) {
gBrowser.moveTabsBefore(movingTabs, dropElement);
} else {
gBrowser.moveTabsAfter(movingTabs, dropElement);
}
};
if (shouldTranslate) {
let translationPromises = [];
for (let tab of movingTabs) {
@@ -1127,16 +1142,7 @@
}
Promise.all(translationPromises).then(() => {
this._finishAnimateTabMove();
if (dropIndex !== undefined) {
for (let tab of movingTabs) {
gBrowser.moveTabTo(tab, dropIndex);
if (!directionForward) {
dropIndex++;
}
}
} else {
gBrowser.dropTabs(movingTabs, dropElement, dropBefore);
}
moveTabs();
});
} else {
this._finishAnimateTabMove();
@@ -1151,15 +1157,8 @@
showCreateUI: true,
color: draggedTab._dragData.tabGroupCreationColor,
});
} else if (dropIndex !== undefined) {
for (let tab of movingTabs) {
gBrowser.moveTabTo(tab, dropIndex);
if (!directionForward) {
dropIndex++;
}
}
} else if (dropElement) {
gBrowser.dropTabs(movingTabs, dropElement, dropBefore);
} else {
moveTabs();
}
}
} else if (draggedTab) {
@@ -2844,7 +2843,7 @@
if (animate) {
addAnimationData(movingTab, true);
} else {
gBrowser.dropTab(movingTab, tab, true);
gBrowser.moveTabBefore(movingTab, tab);
}
}
@@ -2854,7 +2853,7 @@
if (animate) {
addAnimationData(movingTab, false);
} else {
gBrowser.dropTab(movingTab, tab, false);
gBrowser.moveTabAfter(movingTab, tab);
}
}
@@ -2890,12 +2889,12 @@
// Moving left or top tabs
for (let i = 0; i < tabIndex; i++) {
gBrowser.dropTab(selectedTabs[i], tab, true);
gBrowser.moveTabBefore(selectedTabs[i], tab);
}
// Moving right or bottom tabs
for (let i = selectedTabs.length - 1; i > tabIndex; i--) {
gBrowser.dropTab(selectedTabs[i], tab, false);
gBrowser.moveTabAfter(selectedTabs[i], tab);
}
for (let item of this.ariaFocusableItems) {