mirror of
https://github.com/zen-browser/desktop.git
synced 2025-10-06 09:56:36 +00:00
Improved stylings for split view goups
This commit is contained in:
@@ -69,6 +69,8 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||
_edgeHoverSize;
|
||||
minResizeWidth;
|
||||
|
||||
MAX_TABS = 4;
|
||||
|
||||
init() {
|
||||
XPCOMUtils.defineLazyPreferenceGetter(this, 'canChangeTabOnHover', 'zen.splitView.change-on-hover', false);
|
||||
XPCOMUtils.defineLazyPreferenceGetter(this, 'minResizeWidth', 'zen.splitView.min-resize-width', 7);
|
||||
@@ -673,7 +675,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||
* @returns {boolean} True if the tabs can be split, false otherwise.
|
||||
*/
|
||||
contextCanSplitTabs() {
|
||||
if (window.gBrowser.selectedTabs.length < 2) {
|
||||
if (window.gBrowser.selectedTabs.length < 2 || window.gBrowser.selectedTabs.length > this.MAX_TABS) {
|
||||
return false;
|
||||
}
|
||||
for (const tab of window.gBrowser.selectedTabs) {
|
||||
@@ -707,8 +709,8 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||
*/
|
||||
splitTabs(tabs, gridType) {
|
||||
const firstisPinned = tabs[0].pinned;
|
||||
tabs = tabs.filter((t) => t.pinned === firstisPinned);
|
||||
if (tabs.length < 2) {
|
||||
tabs = tabs.filter((t) => t.pinned === firstisPinned && !t.hidden && !t.hasAttribute('zen-empty-tab'));
|
||||
if (tabs.length < 2 || tabs.length > this.MAX_TABS) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -724,9 +726,10 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||
group.layoutTree = this.calculateLayoutTree([...new Set(group.tabs.concat(tabs))], gridType);
|
||||
} else {
|
||||
// Add any tabs that are not already in the group
|
||||
for (const tab of tabs) {
|
||||
if (!group.tabs.includes(tab) && tab.pinned === group.pinned) {
|
||||
group.tabs.push(tab);
|
||||
for (let i = 0; i < tabs.length; i++) {
|
||||
const tab = tabs[i];
|
||||
if (!group.tabs.includes(tab) && tab.pinned === !!group.pinned) {
|
||||
gBrowser.moveTabToGroup(tab, this._getSplitViewGroup(tabs));
|
||||
this.addTabToSplit(tab, group.layoutTree);
|
||||
}
|
||||
}
|
||||
@@ -1302,7 +1305,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||
const groupIndex = this._data.findIndex((group) => group.tabs.includes(droppedOnTab));
|
||||
const group = this._data[groupIndex];
|
||||
|
||||
if (!group.tabs.includes(draggedTab)) {
|
||||
if (!group.tabs.includes(draggedTab) && group.tabs.length < this.MAX_TABS) {
|
||||
// First move the tab to the split view group
|
||||
let splitGroup = droppedOnTab.group;
|
||||
if (splitGroup && (!draggedTab.group || draggedTab.group !== splitGroup)) {
|
||||
|
Reference in New Issue
Block a user