mirror of
https://github.com/zen-browser/components.git
synced 2025-07-08 14:39:58 +02:00
Added toast notification when enabling split view rearanging
This commit is contained in:
parent
8213592bb2
commit
7d54599ba3
1 changed files with 26 additions and 1 deletions
|
@ -185,6 +185,22 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||||
if (node.children) node.children.forEach(c => this._removeNodeSplitters(c));
|
if (node.children) node.children.forEach(c => this._removeNodeSplitters(c));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get rearangeActionTarget() {
|
||||||
|
return document.getElementById("urlbar-container");
|
||||||
|
}
|
||||||
|
|
||||||
|
afterRearangeAction() {
|
||||||
|
document.getElementById("zenSplitViewModifier").hidePopup();
|
||||||
|
ConfirmationHint.show(document.getElementById("zen-split-views-box"), "zen-split-view-modifier-enabled-toast", {
|
||||||
|
descriptionId: "zen-split-view-modifier-enabled-toast-description",
|
||||||
|
showDescription: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
afterRearangeRemove() {
|
||||||
|
ConfirmationHint.show(document.getElementById("zen-split-views-box"), "zen-split-view-modifier-disabled-toast");
|
||||||
|
}
|
||||||
|
|
||||||
enableTabRearrangeView() {
|
enableTabRearrangeView() {
|
||||||
if (this.rearrangeViewEnabled) return;
|
if (this.rearrangeViewEnabled) return;
|
||||||
this.rearrangeViewEnabled = true;
|
this.rearrangeViewEnabled = true;
|
||||||
|
@ -205,12 +221,18 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||||
this.tabBrowserPanel.addEventListener('drop', this.onBrowserDrop);
|
this.tabBrowserPanel.addEventListener('drop', this.onBrowserDrop);
|
||||||
this.tabBrowserPanel.addEventListener('dragend', this.onBrowserDragEnd)
|
this.tabBrowserPanel.addEventListener('dragend', this.onBrowserDragEnd)
|
||||||
this.tabBrowserPanel.addEventListener('click', this.disableTabRearrangeView);
|
this.tabBrowserPanel.addEventListener('click', this.disableTabRearrangeView);
|
||||||
|
window.addEventListener('keydown', this.disableTabRearrangeView);
|
||||||
|
this.afterRearangeAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
disableTabRearrangeView = (event = null) => {
|
disableTabRearrangeView = (event = null) => {
|
||||||
if (!this.rearrangeViewEnabled) return;
|
if (!this.rearrangeViewEnabled) return;
|
||||||
if (event) {
|
if (event) {
|
||||||
if (event.type === 'click' && event.button !== 0) return;
|
// Click or "ESC" key
|
||||||
|
if (event.type === 'click' && event.button !== 0
|
||||||
|
|| event.type === 'keydown' && event.key !== 'Escape') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.rearrangeViewEnabled || (event && event.target.classList.contains('zen-split-view-splitter'))) {
|
if (!this.rearrangeViewEnabled || (event && event.target.classList.contains('zen-split-view-splitter'))) {
|
||||||
|
@ -221,6 +243,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||||
this.tabBrowserPanel.removeEventListener('dragover', this.onBrowserDragOver);
|
this.tabBrowserPanel.removeEventListener('dragover', this.onBrowserDragOver);
|
||||||
this.tabBrowserPanel.removeEventListener('drop', this.onBrowserDrop);
|
this.tabBrowserPanel.removeEventListener('drop', this.onBrowserDrop);
|
||||||
this.tabBrowserPanel.removeEventListener('click', this.disableTabRearrangeView);
|
this.tabBrowserPanel.removeEventListener('click', this.disableTabRearrangeView);
|
||||||
|
window.removeEventListener('keydown', this.disableTabRearrangeView);
|
||||||
const browsers = this._data[this.rearrangeViewView].tabs.map(t => t.linkedBrowser);
|
const browsers = this._data[this.rearrangeViewView].tabs.map(t => t.linkedBrowser);
|
||||||
browsers.forEach(b => {
|
browsers.forEach(b => {
|
||||||
b.style.pointerEvents = '';
|
b.style.pointerEvents = '';
|
||||||
|
@ -228,6 +251,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||||
});
|
});
|
||||||
this.rearrangeViewEnabled = false;
|
this.rearrangeViewEnabled = false;
|
||||||
this.rearrangeViewView = null;
|
this.rearrangeViewView = null;
|
||||||
|
this.afterRearangeRemove();
|
||||||
}
|
}
|
||||||
|
|
||||||
onBrowserDragStart = (event) => {
|
onBrowserDragStart = (event) => {
|
||||||
|
@ -592,6 +616,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
||||||
* @param {Browser} browser - The browser instance.
|
* @param {Browser} browser - The browser instance.
|
||||||
*/
|
*/
|
||||||
async onLocationChange(browser) {
|
async onLocationChange(browser) {
|
||||||
|
this.disableTabRearrangeView();
|
||||||
const tab = window.gBrowser.getTabForBrowser(browser);
|
const tab = window.gBrowser.getTabForBrowser(browser);
|
||||||
this.updateSplitViewButton(!tab?.splitView);
|
this.updateSplitViewButton(!tab?.splitView);
|
||||||
if (tab) {
|
if (tab) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue