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", {

View file

@ -12,13 +12,13 @@ export class ZenGlanceParent extends JSWindowActorParent {
return Services.prefs.getIntPref('zen.glance.hold-duration', 500);
}
case 'ZenGlance:OpenGlance': {
this.openGlance();
this.openGlance(message.data.url);
break;
}
}
}
openGlance() {
console.log('Opening glance');
openGlance(data) {
Services.obs.notifyObservers(null, 'zen-glance-open', data);
}
}

View file

@ -178,7 +178,6 @@ export class ZenThemeMarketplaceParent extends JSWindowActorParent {
async removeTheme(themeId, triggerUpdate = true) {
const themePath = PathUtils.join(this.themesRootPath, themeId);
console.info('ZenThemeMarketplaceParent: Removing theme ', themePath);
await IOUtils.remove(themePath, { recursive: true, ignoreAbsent: true });
if (triggerUpdate) {
this.triggerThemeUpdate();