Skip to content

Commit 7bd8a8e

Browse files
committed
Simplify and open dropped tab at the dropped position if possible
1 parent 6e54cab commit 7bd8a8e

3 files changed

Lines changed: 5 additions & 32 deletions

File tree

webextensions/background/tree.js

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,39 +1761,25 @@ export async function openNewWindowFromTabs(tabs, options = {}) {
17611761
return [];
17621762

17631763
log('openNewWindowFromTabs: ', tabs, options);
1764-
const [sourceWindow, sourceScreen] = await Promise.all([
1765-
browser.windows.get(tabs[0].windowId),
1766-
SidebarConnection.isOpen(tabs[0].windowId) ?
1767-
browser.runtime.sendMessage({
1768-
type: Constants.kCOMMAND_GET_SCREEN_INFO,
1769-
windowId: tabs[0].windowId,
1770-
}) : null,
1771-
]);
1764+
const sourceWindow = await browser.windows.get(tabs[0].windowId);
17721765
const sourceParams = getWindowParamsFromSource(sourceWindow, options);
17731766
const windowParams = {
17741767
//active: true, // not supported in Firefox...
17751768
url: 'about:blank',
17761769
...sourceParams,
17771770
};
1778-
let positioned = (
1771+
const positioned = (
17791772
'left' in options &&
17801773
'top' in options &&
17811774
// positions are not provided for a maximized or fullscreen window!
17821775
typeof windowParams.left == 'number' &&
17831776
typeof windowParams.top == 'number'
17841777
);
17851778
if (positioned) { // opening new window at the dropped position
1786-
const leftOffset = Math.min(20, sourceScreen ? Math.max(0, sourceScreen.availWidth - sourceWindow.width) : 20);
1787-
const topOffset = Math.min(20, sourceScreen ? Math.max(0, sourceScreen.availHeight - sourceWindow.height) : 20);
1788-
if (leftOffset == 0 && topOffset == 0) {
1789-
positioned = false;
1790-
}
1791-
else {
1792-
windowParams.left += leftOffset;
1793-
windowParams.top += topOffset;
1794-
}
1779+
windowParams.left = options.left;
1780+
windowParams.top = options.top;
17951781
}
1796-
if (!positioned) {
1782+
else {
17971783
// We need to delete dimensions here to open new window smartly dimensioned by Firefox itself.
17981784
// See https://github.com/piroor/treestyletab/issues/3959#issuecomment-5494800430
17991785
delete windowParams.height;

webextensions/common/constants.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ export const kCOMMAND_GET_CONFIG_VALUE = 'treestyletab:get-config-
1717
export const kCOMMAND_SET_CONFIG_VALUE = 'treestyletab:set-config-value';
1818
export const kCOMMAND_GET_USER_STYLE_RULES = 'treestyletab:get-user-style-rules';
1919
export const kCOMMAND_GET_DEVICE_PIXEL_RATIO = 'treestyletab:get-device-pixel-ratio';
20-
export const kCOMMAND_GET_SCREEN_INFO = 'treestyletab:get-screen-info';
2120
export const kCOMMAND_PULL_TABS = 'treestyletab:pull-tabs';
2221
export const kCOMMAND_SYNC_TABS_ORDER = 'treestyletab:sync-tabs-order';
2322
export const kCOMMAND_PULL_TABS_ORDER = 'treestyletab:pull-tabs-order';

webextensions/sidebar/sidebar.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,18 +1216,6 @@ function onMessage(message, _sender, _respond) {
12161216
case Constants.kCOMMAND_GET_DEVICE_PIXEL_RATIO:
12171217
return Promise.resolve(window.devicePixelRatio);
12181218

1219-
case Constants.kCOMMAND_GET_SCREEN_INFO:
1220-
return Promise.resolve({
1221-
availHeight: window.screen.availHeight,
1222-
availLeft: window.screen.availLeft,
1223-
availTop: window.screen.availTop,
1224-
availWidth: window.screen.availWidth,
1225-
height: window.screen.height,
1226-
left: window.screen.left,
1227-
top: window.screen.top,
1228-
width: window.screen.width,
1229-
});
1230-
12311219
// for automated tests
12321220
case Constants.kCOMMAND_GET_RECT: {
12331221
const firstNode = document.querySelector(message.startBefore || message.selector);

0 commit comments

Comments
 (0)