From c8ab57a01ea2081eafbff6304f95ef51ea7752a6 Mon Sep 17 00:00:00 2001 From: "mr. M" Date: Thu, 31 Oct 2024 15:50:07 +0100 Subject: [PATCH] Fixed glance opening on multiple windows (https://github.com/zen-browser/desktop/issues/2444) --- src/ZenGlanceManager.mjs | 8 ++------ src/actors/ZenGlanceParent.sys.mjs | 6 +++--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/ZenGlanceManager.mjs b/src/ZenGlanceManager.mjs index 593faa7..0c43ae3 100644 --- a/src/ZenGlanceManager.mjs +++ b/src/ZenGlanceManager.mjs @@ -8,6 +8,8 @@ #animating = false; init() { + document.documentElement.setAttribute("zen-glance-uuid", gZenUIManager.generateUuidv4()); + ChromeUtils.defineLazyGetter( this, 'overlay', @@ -42,14 +44,9 @@ window.addEventListener("keydown", this.onKeyDown.bind(this)); - Services.obs.addObserver(this, "zen-glance-open"); this.initProgressListener(); } - observe(subject, topic, data) { - this.openGlance(JSON.parse(data)); - } - initProgressListener() { this.progressListener = { QueryInterface: ChromeUtils.generateQI(['nsIWebProgressListener', 'nsISupportsWeakReference']), @@ -243,7 +240,6 @@ window.gZenGlanceManager = new ZenGlanceManager(); - function registerWindowActors() { if (Services.prefs.getBoolPref("zen.glance.enabled", true)) { gZenActorsManager.addJSWindowActor("ZenGlance", { diff --git a/src/actors/ZenGlanceParent.sys.mjs b/src/actors/ZenGlanceParent.sys.mjs index ee7043f..edbb157 100644 --- a/src/actors/ZenGlanceParent.sys.mjs +++ b/src/actors/ZenGlanceParent.sys.mjs @@ -12,13 +12,13 @@ export class ZenGlanceParent extends JSWindowActorParent { return Services.prefs.getIntPref('zen.glance.hold-duration', 500); } case 'ZenGlance:OpenGlance': { - this.openGlance(message.data); + this.openGlance(this.browsingContext.topChromeWindow, message.data); break; } } } - openGlance(data) { - Services.obs.notifyObservers(null, 'zen-glance-open', JSON.stringify(data)); + openGlance(window, data) { + window.gZenGlanceManager.openGlance(data); } }