diff --git a/locales/en-US/browser/browser/preferences/zen-preferences.ftl b/locales/en-US/browser/browser/preferences/zen-preferences.ftl index 62f8eebd9..473bfb740 100644 --- a/locales/en-US/browser/browser/preferences/zen-preferences.ftl +++ b/locales/en-US/browser/browser/preferences/zen-preferences.ftl @@ -48,6 +48,11 @@ zen-look-and-feel-compact-view-top-toolbar = zen-look-and-feel-compact-toolbar-flash-popup = .label = Briefly make the toolbar popup when switching or opening new tabs in compact mode +zen-look-and-feel-window-drag-header = Window dragging +zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar. +zen-window-drag-enabled = + .label = Allow dragging the window from web pages + pane-zen-tabs-title = Tab Management category-zen-workspaces = .tooltiptext = { pane-zen-tabs-title } diff --git a/src/browser/components/preferences/zen-settings.js b/src/browser/components/preferences/zen-settings.js index 73d5663cf..83f2fc3c4 100644 --- a/src/browser/components/preferences/zen-settings.js +++ b/src/browser/components/preferences/zen-settings.js @@ -1184,6 +1184,11 @@ Preferences.addAll([ type: "bool", default: true, }, + { + id: "zen.view.drag-window-from-content", + type: "bool", + default: true, + }, { id: "zen.urlbar.behavior", type: "string", diff --git a/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml b/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml index 08b2c2ef7..8f004a3b5 100644 --- a/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml +++ b/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml @@ -61,6 +61,15 @@ data-l10n-id="zen-look-and-feel-compact-toolbar-flash-popup" preference="zen.view.compact.toolbar-flash-popup"/> + + + + + + + animation.finished) + ).then(() => { + if (!this.element.hasAttribute("zen-hiding")) { + return; + } + this.element.removeAttribute("zen-hiding"); + if (this.shouldBeVisible) { + return; + } + this.element.hidden = true; + this.manager.onCardVisibilityChanged(); + }); } // Mirrors the original bar behavior: hide instantly when the card's own diff --git a/src/zen/media/zen-media-controls.css b/src/zen/media/zen-media-controls.css index 045afa8f9..2302155a2 100644 --- a/src/zen/media/zen-media-controls.css +++ b/src/zen/media/zen-media-controls.css @@ -89,7 +89,7 @@ animation: zen-back-and-forth-text 10s infinite ease-in-out; } - & .zen-media-card:not([zen-removing]) { + & .zen-media-card:not([zen-removing], [zen-hiding]) { transform: none; opacity: 1; } @@ -168,11 +168,9 @@ transition: none; } - &[zen-removing] { - position: absolute; - left: 0; - width: 100%; - transform: none; + /* Removed and hiding cards sink down behind the stack while fading out */ + &[zen-removing], + &[zen-hiding] { translate: 0 0.5rem; opacity: 0; filter: blur(2px); @@ -183,6 +181,16 @@ filter 0.3s var(--zen-media-stack-easing); } + /* Removed cards additionally leave the flex flow instantly (bottom is + set inline to where the card was), so only translate/opacity/filter + animate; hiding cards stay in flow until the animation finishes. */ + &[zen-removing] { + position: absolute; + left: 0; + width: 100%; + transform: none; + } + &[stack-overflow] { display: none; }