fix: Small fixes for split view and glance, b=(no-bug), c=common, compact-mode, split-view, tabs

This commit is contained in:
Mr. M 2025-05-27 16:51:35 +02:00
parent 590ba6de1b
commit 3b56abf090
No known key found for this signature in database
GPG key ID: 6292C4C8F8652B18
12 changed files with 46 additions and 60 deletions

2
l10n

@ -1 +1 @@
Subproject commit 9b1df3a65db379b357ac864f84ad08313b3d4c94 Subproject commit ebecb32da8929e4f14f9a20f40acb9dab401101c

View file

@ -1232,11 +1232,6 @@ Preferences.addAll([
type: 'bool', type: 'bool',
default: false, default: false,
}, },
{
id: 'browser.tabs.unloadOnLowMemory',
type: 'bool',
default: true,
},
{ {
id: 'zen.mods.auto-update', id: 'zen.mods.auto-update',
type: 'bool', type: 'bool',

View file

@ -31,15 +31,6 @@
<html:h1 data-l10n-id="pane-zen-tabs-unloader-title"/> <html:h1 data-l10n-id="pane-zen-tabs-unloader-title"/>
</hbox> </hbox>
<groupbox id="zenTabsUnloadGroup" data-category="paneZenTabManagement" hidden="true" class="highlighting-group">
<label><html:h2 data-l10n-id="zen-tabs-unloader-header"/></label>
<description class="description-deemphasized" data-l10n-id="zen-tabs-unloader-description" />
<checkbox id="zenTabsUnloadActivate"
data-l10n-id="zen-tabs-unloader-enabled"
preference="browser.tabs.unloadOnLowMemory"/>
</groupbox>
<hbox id="zenPinnedTabsManagerCategory" <hbox id="zenPinnedTabsManagerCategory"
class="subcategory" class="subcategory"
hidden="true" hidden="true"

View file

@ -121,6 +121,10 @@
list-style-image: url('tab.svg') !important; list-style-image: url('tab.svg') !important;
} }
#context-navigation > menuitem {
padding: 4px;
}
#history-panelmenu, #history-panelmenu,
.urlbarView-row[source='history'] .urlbarView-row[source='history']
> .urlbarView-row-inner > .urlbarView-row-inner

View file

@ -1068,12 +1068,7 @@ var gZenVerticalTabsManager = {
!gZenVerticalTabsManager._prefsSidebarExpanded !gZenVerticalTabsManager._prefsSidebarExpanded
) )
return; return;
this._tabEdited = this._tabEdited = event.target.closest('.tabbrowser-tab');
event.target.closest('.tabbrowser-tab') ||
event.target.closest('.zen-current-workspace-indicator-name') ||
gZenWorkspaces.activeWorkspaceIndicator.querySelector(
'.zen-current-workspace-indicator-name'
);
if ( if (
!this._tabEdited || !this._tabEdited ||
((!this._tabEdited.pinned || this._tabEdited.hasAttribute('zen-essential')) && isTab) ((!this._tabEdited.pinned || this._tabEdited.hasAttribute('zen-essential')) && isTab)

View file

@ -90,6 +90,9 @@ class ZenUIMigration {
} }
_migrateV4(win) { _migrateV4(win) {
if (AppConstants.platform === 'linux') {
return;
}
Services.prefs.setBoolPref( Services.prefs.setBoolPref(
'browser.tabs.unloadOnLowMemory', 'browser.tabs.unloadOnLowMemory',
Services.prefs.getBoolPref('zen.tab-unloader.enabled', true) Services.prefs.getBoolPref('zen.tab-unloader.enabled', true)

View file

@ -78,16 +78,6 @@
transition: background-color var(--inactive-window-transition); transition: background-color var(--inactive-window-transition);
} }
@media (not (-moz-windows-mica)) and -moz-pref('zen.view.grey-out-inactive-windows') {
transition: color var(--inactive-window-transition);
:root:not([zen-welcome-stage]) &:-moz-window-inactive {
color: var(--toolbox-textcolor-inactive);
&::before {
background-color: var(--toolbox-bgcolor-inactive);
}
}
}
#zen-browser-grain { #zen-browser-grain {
content: ''; content: '';
width: 100%; width: 100%;
@ -131,9 +121,7 @@
z-index: 1; z-index: 1;
} }
@media (-moz-windows-accent-color-in-titlebar) and (-moz-windows-mica) { @media -moz-pref('zen.view.grey-out-inactive-windows') {
background-color: ActiveCaption;
color: CaptionText;
transition: background-color var(--inactive-window-transition); transition: background-color var(--inactive-window-transition);
&:-moz-window-inactive { &:-moz-window-inactive {
background-color: InactiveCaption; background-color: InactiveCaption;
@ -264,6 +252,7 @@
opacity: 0; opacity: 0;
transition: opacity 0.1s ease-in-out; transition: opacity 0.1s ease-in-out;
pointer-events: none; pointer-events: none;
transform: translateX(-50%);
} }
&:hover::before { &:hover::before {

View file

@ -41,7 +41,7 @@ menupopup,
panel { panel {
--panel-background: var(--arrowpanel-background); --panel-background: var(--arrowpanel-background);
--panel-border-radius: var(--zen-native-inner-radius); --panel-border-radius: var(--zen-native-inner-radius);
--menuitem-padding: 6px 5px !important; --menuitem-padding: 6px !important;
} }
/* split-view popup */ /* split-view popup */

View file

@ -91,10 +91,6 @@ var gZenCompactModeManager = {
this.preference === value || this.preference === value ||
document.documentElement.hasAttribute('zen-compact-animating') document.documentElement.hasAttribute('zen-compact-animating')
) { ) {
if (typeof this._wasInCompactMode !== 'undefined') {
// We wont do anything with it anyway, so we remove it
delete this._wasInCompactMode;
}
// We dont want the user to be able to spam the button // We dont want the user to be able to spam the button
return value; return value;
} }

View file

@ -210,6 +210,10 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
const node = this.getSplitNodeFromTab(tab); const node = this.getSplitNodeFromTab(tab);
const toUpdate = this.removeNode(node); const toUpdate = this.removeNode(node);
this.applyGridLayout(toUpdate); this.applyGridLayout(toUpdate);
// Select next tab if the removed tab was selected
if (gBrowser.selectedTab === tab) {
gBrowser.selectedTab = group.tabs[0];
}
} }
} }
@ -946,8 +950,8 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
window.gContextMenu.contentData.docLocation || window.gContextMenu.contentData.docLocation ||
window.gContextMenu.target.ownerDocument.location.href; window.gContextMenu.target.ownerDocument.location.href;
const currentTab = gZenGlanceManager.getTabOrGlanceParent(window.gBrowser.selectedTab); const currentTab = gZenGlanceManager.getTabOrGlanceParent(window.gBrowser.selectedTab);
const newTab = this.openAndSwitchToTab(url); const newTab = this.openAndSwitchToTab(url, { inBackground: false });
this.splitTabs([currentTab, newTab]); this.splitTabs([currentTab, newTab], 'grid', 1);
} }
/** /**
@ -1090,7 +1094,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
}; };
this._data.push(splitData); this._data.push(splitData);
if (!this._sessionRestoring) { if (!this._sessionRestoring) {
window.gBrowser.selectedTab = tabs[0]; window.gBrowser.selectedTab = tabs[initialIndex] ?? tabs[0];
} }
// Add tabs to the split view group // Add tabs to the split view group

View file

@ -41,6 +41,10 @@
} }
} }
#zen-splitview-dropzone {
margin-top: 0 !important;
}
#tabbrowser-tabpanels[zen-split-view='true']:not([zen-split-resizing]) > [zen-split='true'] { #tabbrowser-tabpanels[zen-split-view='true']:not([zen-split-resizing]) > [zen-split='true'] {
transition: inset 0.09s ease-out !important; transition: inset 0.09s ease-out !important;
& browser { & browser {
@ -70,15 +74,8 @@
margin-right: calc(-1 * var(--zen-split-column-gap)); margin-right: calc(-1 * var(--zen-split-column-gap));
} }
#tabbrowser-tabpanels:has(> [zen-split='true']), :root:not([customizing]) #zen-splitview-overlay {
#zen-splitview-overlay { margin-top: calc(var(--zen-split-column-gap) * -1);
:root:not([zen-compact-mode='true']):not([customizing]) & {
@media -moz-pref('zen.view.compact.hide-toolbar') {
& {
margin-top: calc(var(--zen-split-column-gap) * -1);
}
}
}
} }
#tabbrowser-tabpanels[zen-split-view] { #tabbrowser-tabpanels[zen-split-view] {

View file

@ -634,12 +634,17 @@
this.resetPinChangedUrl(tab); this.resetPinChangedUrl(tab);
} }
async getFaviconAsBase64(pageUrl) { async getFaviconAsBase64(pageUrl, secondTry = false) {
try { try {
const faviconData = await PlacesUtils.favicons.getFaviconForPage(pageUrl); const faviconData = await PlacesUtils.favicons.getFaviconForPage(pageUrl);
if (!faviconData) { if (!faviconData) {
// empty favicon if (secondTry || pageUrl.spec.startsWith('about:')) {
return 'data:image/png;base64,'; // empty favicon
return 'data:image/png;base64,';
}
// Try again with the domain
const domainUrl = pageUrl.spec.substring(0, pageUrl.spec.indexOf('/'));
return await this.getFaviconAsBase64(Services.io.newURI(domainUrl), true);
} }
return faviconData.dataURI; return faviconData.dataURI;
} catch (ex) { } catch (ex) {
@ -662,7 +667,7 @@
for (let i = 0; i < tabs.length; i++) { for (let i = 0; i < tabs.length; i++) {
let tab = tabs[i]; let tab = tabs[i];
const section = gZenWorkspaces.getEssentialsSection(tab); const section = gZenWorkspaces.getEssentialsSection(tab);
if (section.children.length >= this.MAX_ESSENTIALS_TABS) { if (!this.canEssentialBeAdded(tab)) {
movedAll = false; movedAll = false;
continue; continue;
} }
@ -794,7 +799,7 @@
document.getElementById('context_zen-add-essential').hidden = document.getElementById('context_zen-add-essential').hidden =
contextTab.getAttribute('zen-essential') || contextTab.getAttribute('zen-essential') ||
!!contextTab.group || !!contextTab.group ||
gBrowser._numZenEssentials >= this.MAX_ESSENTIALS_TABS; !this.canEssentialBeAdded(contextTab);
document.getElementById('context_zen-remove-essential').hidden = document.getElementById('context_zen-remove-essential').hidden =
!contextTab.getAttribute('zen-essential'); !contextTab.getAttribute('zen-essential');
document.getElementById('context_unpinTab').hidden = document.getElementById('context_unpinTab').hidden =
@ -1007,6 +1012,16 @@
} }
} }
canEssentialBeAdded(tab) {
return (
!(
(tab.getAttribute('usercontextid') || 0) !=
gZenWorkspaces.getActiveWorkspaceFromCache().containerTabId &&
gZenWorkspaces.containerSpecificEssentials
) && gBrowser._numZenEssentials < this.MAX_ESSENTIALS_TABS
);
}
applyDragoverClass(event, draggedTab) { applyDragoverClass(event, draggedTab) {
if (!this.enabled) { if (!this.enabled) {
return; return;
@ -1040,10 +1055,7 @@
shouldAddDragOverElement = true; shouldAddDragOverElement = true;
} }
} else if (essentialTabsTarget) { } else if (essentialTabsTarget) {
if ( if (!draggedTab.hasAttribute('zen-essential') && this.canEssentialBeAdded(draggedTab)) {
!draggedTab.hasAttribute('zen-essential') &&
gBrowser._numZenEssentials < this.MAX_ESSENTIALS_TABS
) {
shouldAddDragOverElement = true; shouldAddDragOverElement = true;
isVertical = false; isVertical = false;
} }