Don't create main panel without a monitor
Resolves: https://issues.redhat.com/browse/RHEL-110378
This commit is contained in:
parent
c5e9b54ace
commit
3d4540e25d
114
0001-dash-to-panel-Don-t-create-main-panel-without-a-moni.patch
Normal file
114
0001-dash-to-panel-Don-t-create-main-panel-without-a-moni.patch
Normal file
@ -0,0 +1,114 @@
|
||||
From 7b6dbfdd727ce5a5b593394893489bafc02ccea6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 25 Sep 2025 14:18:03 +0200
|
||||
Subject: [PATCH] dash-to-panel: Don't create main panel without a monitor
|
||||
|
||||
---
|
||||
extensions/dash-to-panel/extension.js | 5 ++--
|
||||
extensions/dash-to-panel/panelManager.js | 35 +++++++++++++++++-------
|
||||
2 files changed, 28 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/extensions/dash-to-panel/extension.js b/extensions/dash-to-panel/extension.js
|
||||
index 8ab108f2..8ffff041 100644
|
||||
--- a/extensions/dash-to-panel/extension.js
|
||||
+++ b/extensions/dash-to-panel/extension.js
|
||||
@@ -111,7 +111,8 @@ function _enable() {
|
||||
// Pretend I'm the dash: meant to make appgrd swarm animation come from the
|
||||
// right position of the appShowButton.
|
||||
oldDash = Main.overview._dash;
|
||||
- Main.overview._dash = panelManager.primaryPanel.taskbar;
|
||||
+ if (panelManager.primaryPanel)
|
||||
+ Main.overview._dash = panelManager.primaryPanel.taskbar;
|
||||
}
|
||||
|
||||
function disable(reset) {
|
||||
@@ -141,4 +142,4 @@ function disable(reset) {
|
||||
(extensionSystem._callExtensionEnable || extensionSystem.enableExtension).call(extensionSystem, UBUNTU_DOCK_UUID);
|
||||
}
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/extensions/dash-to-panel/panelManager.js b/extensions/dash-to-panel/panelManager.js
|
||||
index 20ee12d8..87a85504 100755
|
||||
--- a/extensions/dash-to-panel/panelManager.js
|
||||
+++ b/extensions/dash-to-panel/panelManager.js
|
||||
@@ -73,16 +73,20 @@ var dtpPanelManager = Utils.defineClass({
|
||||
enable: function(reset) {
|
||||
let dtpPrimaryIndex = Me.settings.get_int('primary-monitor');
|
||||
|
||||
+ this.allPanels = [];
|
||||
this.dtpPrimaryMonitor = Main.layoutManager.monitors[dtpPrimaryIndex] || Main.layoutManager.primaryMonitor;
|
||||
this.proximityManager = new Proximity.ProximityManager();
|
||||
|
||||
Utils.wrapActor(Main.panel);
|
||||
Utils.wrapActor(Main.overview.dash || 0);
|
||||
|
||||
- this.primaryPanel = this._createPanel(this.dtpPrimaryMonitor, Me.settings.get_boolean('stockgs-keep-top-panel'));
|
||||
- this.allPanels = [ this.primaryPanel ];
|
||||
-
|
||||
- this.overview.enable(this.primaryPanel);
|
||||
+ if (this.dtpPrimaryMonitor) {
|
||||
+ this.primaryPanel = this._createPanel(this.dtpPrimaryMonitor, Me.settings.get_boolean('stockgs-keep-top-panel'));
|
||||
+ this.allPanels.push(this.primaryPanel);
|
||||
+ this.overview.enable(this.primaryPanel);
|
||||
+
|
||||
+ this.setFocusedMonitor(this.dtpPrimaryMonitor);
|
||||
+ }
|
||||
|
||||
if (Me.settings.get_boolean('multi-monitors')) {
|
||||
Main.layoutManager.monitors.filter(m => m != this.dtpPrimaryMonitor).forEach(m => {
|
||||
@@ -121,18 +125,20 @@ var dtpPanelManager = Utils.defineClass({
|
||||
}
|
||||
|
||||
this._updatePanelElementPositions();
|
||||
- this.setFocusedMonitor(this.dtpPrimaryMonitor);
|
||||
|
||||
- if (this.primaryPanel.checkIfVertical()) {
|
||||
+ if (this.primaryPanel && this.primaryPanel.checkIfVertical()) {
|
||||
Main.wm._getPositionForDirection = newGetPositionForDirection;
|
||||
}
|
||||
|
||||
if (reset) return;
|
||||
|
||||
this._oldViewSelectorAnimateIn = Main.overview.viewSelector._animateIn;
|
||||
- Main.overview.viewSelector._animateIn = Lang.bind(this.primaryPanel, newViewSelectorAnimateIn);
|
||||
this._oldViewSelectorAnimateOut = Main.overview.viewSelector._animateOut;
|
||||
- Main.overview.viewSelector._animateOut = Lang.bind(this.primaryPanel, newViewSelectorAnimateOut);
|
||||
+
|
||||
+ if (this.primaryPanel) {
|
||||
+ Main.overview.viewSelector._animateIn = Lang.bind(this.primaryPanel, newViewSelectorAnimateIn);
|
||||
+ Main.overview.viewSelector._animateOut = Lang.bind(this.primaryPanel, newViewSelectorAnimateOut);
|
||||
+ }
|
||||
|
||||
if (Config.PACKAGE_VERSION > '3.35.1') {
|
||||
this._oldDoSpringAnimation = AppDisplay.BaseAppView.prototype._doSpringAnimation;
|
||||
@@ -265,14 +271,23 @@ var dtpPanelManager = Utils.defineClass({
|
||||
);
|
||||
|
||||
Panel.panelBoxes.forEach(c => this._signalsHandler.add(
|
||||
- [Main.panel[c], 'actor-added', (parent, child) => this._adjustPanelMenuButton(this._getPanelMenuButton(child), this.primaryPanel.monitor, this.primaryPanel.getPosition())]
|
||||
+ [
|
||||
+ Main.panel[c],
|
||||
+ 'actor-added',
|
||||
+ (parent, child) => {
|
||||
+ if (this.primaryPanel)
|
||||
+ this._adjustPanelMenuButton(this._getPanelMenuButton(child),
|
||||
+ this.primaryPanel.monitor, this.primaryPanel.getPosition());
|
||||
+ }
|
||||
+ ]
|
||||
));
|
||||
|
||||
this._setKeyBindings(true);
|
||||
},
|
||||
|
||||
disable: function(reset) {
|
||||
- this.overview.disable();
|
||||
+ if (this.primaryPanel)
|
||||
+ this.overview.disable();
|
||||
this.proximityManager.destroy();
|
||||
|
||||
this.allPanels.forEach(p => {
|
||||
--
|
||||
2.51.0
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
Name: gnome-shell-extensions
|
||||
Version: 3.32.1
|
||||
Release: 45%{?dist}
|
||||
Release: 46%{?dist}
|
||||
Summary: Modify and extend GNOME Shell functionality and behavior
|
||||
|
||||
Group: User Interface/Desktops
|
||||
@ -65,6 +65,7 @@ Patch0036: apps-menu-custom-layout-manager.patch
|
||||
Patch0037: dash-to-panel-attention-indicator.patch
|
||||
Patch0038: improve-workspace-names.patch
|
||||
Patch0039: 0001-dash-to-panel-Consider-range-around-edges-for-dwelli.patch
|
||||
Patch0040: 0001-dash-to-panel-Don-t-create-main-panel-without-a-moni.patch
|
||||
|
||||
%description
|
||||
GNOME Shell Extensions is a collection of extensions providing additional and
|
||||
@ -580,6 +581,10 @@ cp $RPM_SOURCE_DIR/gnome-classic.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Oct 16 2025 Florian Müllner <fmuellner@redhat.com> - 3.32.1-46
|
||||
- Skip creating main panel with no monitor
|
||||
Resolves: RHEL-110378
|
||||
|
||||
* Thu Oct 16 2025 Florian Müllner <fmuellner@redhat.com> - 3.32.1-45
|
||||
- Fix issues in workspace-names backport
|
||||
Resolves: RHEL-96219
|
||||
|
||||
Loading…
Reference in New Issue
Block a user