Added glance overlay and functionality

This commit is contained in:
mr. M 2024-10-28 15:25:54 +01:00
parent 01905fa4e4
commit a942043645
No known key found for this signature in database
GPG key ID: CBD57A2AEDBDA1FB
3 changed files with 55 additions and 4 deletions

View file

@ -1,5 +1,57 @@
{
class ZenGlanceManager extends ZenDOMOperatedFeature {
#currentBrowser = null;
init() {
ChromeUtils.defineLazyGetter(
this,
'overlay',
() => document.getElementById('zen-glance-overlay')
);
ChromeUtils.defineLazyGetter(
this,
'browserWrapper',
() => document.getElementById('zen-glance-browser-container')
);
Services.obs.addObserver(this, "zen-glance-open");
}
observe(subject, topic, data) {
this.openGlance(data);
}
openGlance(url) {
if (this.#currentBrowser) {
return;
}
const currentTab = gBrowser.selectedTab;
const overlayWrapper = currentTab.linkedBrowser.closest(".browserSidebarContainer");
overlayWrapper.appendChild(this.overlay);
window.requestAnimationFrame(() => {
this.overlay.removeAttribute("hidden");
});
}
closeGlance() {
this.#currentBrowser?.remove();
this.#currentBrowser = null;
this.overlay.setAttribute("hidden", true);
}
onLocationChange(_) {
this.closeGlance();
}
}
window.gZenGlanceManager = new ZenGlanceManager();
function registerWindowActors() {
// TODO: Only if the pref is enabled
gZenActorsManager.addJSWindowActor("ZenGlance", {