From 216d932ccc8bd0dccbf7950b8cfe759e6c31d4ff Mon Sep 17 00:00:00 2001 From: Artyom Zorin Date: Thu, 31 Jul 2025 20:01:46 +0100 Subject: [PATCH] Bump to version 68.4 --- debian/changelog | 6 ++++++ src/panel.js | 9 ++++++++- src/panelManager.js | 4 +++- src/panelSettings.js | 17 ++++------------- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/debian/changelog b/debian/changelog index eea6f95..af79487 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +gnome-shell-extension-zorin-taskbar (68.4) noble; urgency=medium + + * Applied monitor selection and reset geometry fixes + + -- Artyom Zorin Thu, 31 Jul 2025 19:40:58 +0100 + gnome-shell-extension-zorin-taskbar (68.3) noble; urgency=medium * Removed code to handle overview startup animation diff --git a/src/panel.js b/src/panel.js index 32fc5f6..ec3e952 100644 --- a/src/panel.js +++ b/src/panel.js @@ -375,8 +375,10 @@ export const Panel = GObject.registerClass( this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS) if (!Main.layoutManager._startingUp) - GLib.idle_add(GLib.PRIORITY_LOW, () => { + this._waitResetGeomId = GLib.idle_add(GLib.PRIORITY_LOW, () => { + this._waitResetGeomId = 0 this._resetGeometry() + return GLib.SOURCE_REMOVE }) } @@ -387,6 +389,11 @@ export const Panel = GObject.registerClass( this._timeoutsHandler.destroy() this._signalsHandler.destroy() + if (this._waitResetGeomId) { + GLib.remove_source(this._waitResetGeomId) + this._waitResetGeomId = 0 + } + this.panel.remove_child(this.taskbar.actor) if (this.intellihide) { diff --git a/src/panelManager.js b/src/panelManager.js index 4216c52..7bb6990 100644 --- a/src/panelManager.js +++ b/src/panelManager.js @@ -254,7 +254,9 @@ export const PanelManager = class { 'monitors-changed', async () => { if (Main.layoutManager.primaryMonitor) { - await PanelSettings.setMonitorsInfo(SETTINGS) + await PanelSettings.setMonitorsInfo(SETTINGS).catch((e) => + console.log(e), + ) this._reset() } }, diff --git a/src/panelSettings.js b/src/panelSettings.js index 04fd5ca..b8888dd 100644 --- a/src/panelSettings.js +++ b/src/panelSettings.js @@ -203,7 +203,7 @@ export function setPanelElementPositions(settings, monitorIndex, value) { setMonitorSetting(settings, 'panel-element-positions', monitorIndex, value) } -export async function setMonitorsInfo(settings) { +export function setMonitorsInfo(settings) { return new Promise((resolve, reject) => { try { let monitorInfos = [] @@ -211,7 +211,6 @@ export async function setMonitorsInfo(settings) { proxy.GetCurrentStateRemote((displayInfo, e) => { if (e) return reject(`Error getting display state: ${e}`) - let gsPrimaryIndex = 0 let ids = {} //https://gitlab.gnome.org/GNOME/mutter/-/blob/main/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml#L347 @@ -227,8 +226,6 @@ export async function setMonitorsInfo(settings) { if (ids[id]) id = connector && !ids[connector] ? connector : i - if (primary) gsPrimaryIndex = i - monitorInfos.push({ id, product, @@ -240,7 +237,7 @@ export async function setMonitorsInfo(settings) { ids[id] = 1 }) - _saveMonitors(settings, monitorInfos, gsPrimaryIndex) + _saveMonitors(settings, monitorInfos) resolve() }) @@ -264,20 +261,14 @@ export async function setMonitorsInfo(settings) { }) } -function _saveMonitors(settings, monitorInfos, gsPrimaryIndex) { +function _saveMonitors(settings, monitorInfos) { /* Commented out as Zorin Taskbar always uses gnome-shell primary monitor let keyPrimary = 'primary-monitor' let dtpPrimaryMonitor = settings.get_string(keyPrimary) // convert previously saved index to monitor id if (dtpPrimaryMonitor.match(/^\d{1,2}$/) && monitorInfos[dtpPrimaryMonitor]) - dtpPrimaryMonitor = monitorInfos[dtpPrimaryMonitor].id - - // default to gnome-shell primary monitor - if (!dtpPrimaryMonitor) - dtpPrimaryMonitor = monitorInfos[gsPrimaryIndex]?.id || 0 - - settings.set_string(keyPrimary, dtpPrimaryMonitor) + settings.set_string(keyPrimary, monitorInfos[dtpPrimaryMonitor].id) */ availableMonitors = Object.freeze(monitorInfos)