68 lines
2.5 KiB
Diff
68 lines
2.5 KiB
Diff
|
From d595d168ed0fccf57b1995a4d36169d978820a7b Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||
|
Date: Wed, 21 Feb 2024 17:37:16 +0100
|
||
|
Subject: [PATCH 12/28] workspace-indicator: Only change top bar redirect when
|
||
|
in top bar
|
||
|
|
||
|
While this is always the case for the workspace indicator, adding
|
||
|
the check will allow to use the same code in the window list.
|
||
|
|
||
|
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
|
||
|
---
|
||
|
.../workspace-indicator/workspaceIndicator.js | 23 +++++++++++++++++--
|
||
|
1 file changed, 21 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
|
||
|
index 9a1055aa..f118654e 100644
|
||
|
--- a/extensions/workspace-indicator/workspaceIndicator.js
|
||
|
+++ b/extensions/workspace-indicator/workspaceIndicator.js
|
||
|
@@ -302,6 +302,16 @@ export class WorkspaceIndicator extends PanelMenu.Button {
|
||
|
|
||
|
this.connect('scroll-event', this._onScrollEvent.bind(this));
|
||
|
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
|
||
|
+
|
||
|
+ this._inTopBar = false;
|
||
|
+ this.connect('notify::realized', () => {
|
||
|
+ if (!this.realized)
|
||
|
+ return;
|
||
|
+
|
||
|
+ this._inTopBar = Main.panel.contains(this);
|
||
|
+ this._updateTopBarRedirect();
|
||
|
+ });
|
||
|
+
|
||
|
this._updateMenu();
|
||
|
this._updateThumbnails();
|
||
|
this._updateThumbnailVisibility();
|
||
|
@@ -313,7 +323,9 @@ export class WorkspaceIndicator extends PanelMenu.Button {
|
||
|
}
|
||
|
|
||
|
_onDestroy() {
|
||
|
- Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||
|
+ if (this._inTopBar)
|
||
|
+ Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||
|
+ this._inTopBar = false;
|
||
|
|
||
|
super._onDestroy();
|
||
|
}
|
||
|
@@ -328,9 +340,16 @@ export class WorkspaceIndicator extends PanelMenu.Button {
|
||
|
this._statusLabel.visible = useMenu;
|
||
|
this._thumbnailsBox.visible = !useMenu;
|
||
|
|
||
|
+ this._updateTopBarRedirect();
|
||
|
+ }
|
||
|
+
|
||
|
+ _updateTopBarRedirect() {
|
||
|
+ if (!this._inTopBar)
|
||
|
+ return;
|
||
|
+
|
||
|
// Disable offscreen-redirect when showing the workspace switcher
|
||
|
// so that clip-to-allocation works
|
||
|
- Main.panel.set_offscreen_redirect(useMenu
|
||
|
+ Main.panel.set_offscreen_redirect(this._thumbnailsBox.visible
|
||
|
? Clutter.OffscreenRedirect.ALWAYS
|
||
|
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
|
||
|
}
|
||
|
--
|
||
|
2.44.0
|
||
|
|