import OL gnome-shell-extensions-40.7-29.el9_7

This commit is contained in:
eabdullin 2025-11-27 12:00:54 +00:00
parent 58ac207a9d
commit 01eb8db6f9
11 changed files with 5714 additions and 88 deletions

View File

@ -0,0 +1,231 @@
From 50c6c0c2137fded5f89be5bbee2292071e464cd2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 21 May 2024 19:01:30 +0200
Subject: [PATCH] Add move-notifications extension
---
extensions/move-notifications/extension.js | 49 +++++++++++
extensions/move-notifications/meson.build | 8 ++
.../move-notifications/metadata.json.in | 10 +++
....extensions.move-notifications.gschema.xml | 14 +++
extensions/move-notifications/prefs.js | 86 +++++++++++++++++++
meson.build | 1 +
6 files changed, 168 insertions(+)
create mode 100644 extensions/move-notifications/extension.js
create mode 100644 extensions/move-notifications/meson.build
create mode 100644 extensions/move-notifications/metadata.json.in
create mode 100644 extensions/move-notifications/org.gnome.shell.extensions.move-notifications.gschema.xml
create mode 100644 extensions/move-notifications/prefs.js
diff --git a/extensions/move-notifications/extension.js b/extensions/move-notifications/extension.js
new file mode 100644
index 00000000..0211696d
--- /dev/null
+++ b/extensions/move-notifications/extension.js
@@ -0,0 +1,49 @@
+/* exported init */
+const Clutter = imports.gi.Clutter;
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Main = imports.ui.main;
+
+class MoveNotificationsExtension {
+ enable() {
+ const updatePanel = Main.panel._updatePanel;
+ this._updatePanelOrig = updatePanel;
+
+ Main.panel._updatePanel = () => {
+ updatePanel.call(Main.panel);
+
+ Main.messageTray.bannerAlignment = this._getAlignment();
+ };
+
+ this._settings = ExtensionUtils.getSettings();
+ this._changedId = this._settings.connect('changed::position',
+ () => Main.panel._updatePanel());
+ Main.panel._updatePanel();
+ }
+
+ disable() {
+ this._settings.disconnect(this._changedId);
+ this._settings = null;
+
+ Main.panel._updatePanel = this._updatePanelOrig;
+ delete this._updatePanelOrig;
+
+ Main.panel._updatePanel();
+ }
+
+ _getAlignment() {
+ switch (this._settings.get_string('position')) {
+ case 'top-left':
+ return Clutter.ActorAlign.START;
+ case 'top-right':
+ return Clutter.ActorAlign.END;
+ case 'top-center':
+ default:
+ return Clutter.ActorAlign.CENTER;
+ }
+ }
+}
+
+function init() {
+ return new MoveNotificationsExtension();
+}
diff --git a/extensions/move-notifications/meson.build b/extensions/move-notifications/meson.build
new file mode 100644
index 00000000..c55a7830
--- /dev/null
+++ b/extensions/move-notifications/meson.build
@@ -0,0 +1,8 @@
+extension_data += configure_file(
+ input: metadata_name + '.in',
+ output: metadata_name,
+ configuration: metadata_conf
+)
+
+extension_sources += files('prefs.js')
+extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
diff --git a/extensions/move-notifications/metadata.json.in b/extensions/move-notifications/metadata.json.in
new file mode 100644
index 00000000..cae9352c
--- /dev/null
+++ b/extensions/move-notifications/metadata.json.in
@@ -0,0 +1,10 @@
+{
+ "uuid": "@uuid@",
+ "extension-id": "@extension_id@",
+ "settings-schema": "@gschemaname@",
+ "gettext-domain": "@gettext_domain@",
+ "name": "Move notifications",
+ "description": "Move notification banners",
+ "shell-version": [ "@shell_current@" ],
+ "url": "@url@"
+}
diff --git a/extensions/move-notifications/org.gnome.shell.extensions.move-notifications.gschema.xml b/extensions/move-notifications/org.gnome.shell.extensions.move-notifications.gschema.xml
new file mode 100644
index 00000000..a78d72bb
--- /dev/null
+++ b/extensions/move-notifications/org.gnome.shell.extensions.move-notifications.gschema.xml
@@ -0,0 +1,14 @@
+<schemalist gettext-domain="gnome-shell-extensions">
+ <enum id="org.gnome.shell.extensions.move-notifications.position">
+ <value nick="top-center" value="0"/>
+ <value nick="top-right" value="1"/>
+ <value nick="top-left" value="2"/>
+ </enum>
+
+ <schema id="org.gnome.shell.extensions.move-notifications" path="/org/gnome/shell/extensions/move-notifications/">
+ <key name="position" enum="org.gnome.shell.extensions.move-notifications.position">
+ <default>"top-right"</default>
+ <summary>Notification position</summary>
+ </key>
+ </schema>
+</schemalist>
diff --git a/extensions/move-notifications/prefs.js b/extensions/move-notifications/prefs.js
new file mode 100644
index 00000000..a3ecdacf
--- /dev/null
+++ b/extensions/move-notifications/prefs.js
@@ -0,0 +1,86 @@
+// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
+/* exported init buildPrefsWidget */
+
+const { Gio, GLib, GObject, Gtk } = imports.gi;
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+
+const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
+const _ = Gettext.gettext;
+
+/** */
+function init() {
+ ExtensionUtils.initTranslations();
+}
+
+const MoveNotificationsPrefsWidget = GObject.registerClass(
+class MoveNotificationsPrefsWidget extends Gtk.Box {
+ _init() {
+ super._init({
+ orientation: Gtk.Orientation.VERTICAL,
+ spacing: 6,
+ margin_top: 36,
+ margin_bottom: 36,
+ margin_start: 36,
+ margin_end: 36,
+ halign: Gtk.Align.CENTER,
+ });
+
+ this._actionGroup = new Gio.SimpleActionGroup();
+ this.insert_action_group('move-notifications', this._actionGroup);
+
+ this._settings = ExtensionUtils.getSettings();
+ this._actionGroup.add_action(
+ this._settings.create_action('position'));
+
+ const title = new Gtk.Label({
+ label: _('Notification Position'),
+ halign: Gtk.Align.START,
+ });
+ title.add_css_class('heading');
+ this.append(title);
+
+ const box = new Gtk.Box({
+ orientation: Gtk.Orientation.VERTICAL,
+ spacing: 12,
+ margin_bottom: 12,
+ });
+ this.append(box);
+
+ const context = box.get_style_context();
+ const cssProvider = new Gtk.CssProvider();
+ cssProvider.load_from_data(
+ 'box { padding: 12px; }', -1);
+
+ context.add_provider(cssProvider,
+ Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
+ context.add_class('boxed-list');
+ context.add_class('view');
+
+ const positions = [
+ { pos: 'top-right', label: _('TopRight') },
+ { pos: 'top-center', label: _('TopCenter') },
+ { pos: 'top-left', label: _('TopLeft') },
+ ];
+ let group = null;
+ for (const { pos, label } of positions) {
+ const check = new Gtk.CheckButton({
+ action_name: 'move-notifications.position',
+ action_target: new GLib.Variant('s', pos),
+ label,
+ group,
+ margin_end: 12,
+ });
+ group = check;
+ box.append(check);
+ }
+ }
+});
+
+/**
+ * @returns {Gtk.Widget} - the prefs widget
+ */
+function buildPrefsWidget() {
+ return new MoveNotificationsPrefsWidget();
+}
diff --git a/meson.build b/meson.build
index 7e6ed3e8..0a31d2f6 100644
--- a/meson.build
+++ b/meson.build
@@ -53,6 +53,7 @@ all_extensions += [
'dash-to-dock',
'dash-to-panel',
'gesture-inhibitor',
+ 'move-notifications',
'native-window-placement',
'panel-favorites',
'systemMonitor',
--
2.46.0

View File

@ -0,0 +1,48 @@
From 7ed5e50cc978b7fda34aaaf56e8bf4d499f4676d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Mon, 2 Dec 2024 17:34:58 +0100
Subject: [PATCH] dash-to-panel: Remove faulty version check
In a string comparison, '40.10' is *smaller* than '40.3', so the
overview ends up being monkey-patched for an older version.
Unbreak the app grid by removing the check altogether, as we don't
have to care about older versions.
---
extensions/dash-to-panel/overview.js | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/extensions/dash-to-panel/overview.js b/extensions/dash-to-panel/overview.js
index 57600a5c..38f04c75 100644
--- a/extensions/dash-to-panel/overview.js
+++ b/extensions/dash-to-panel/overview.js
@@ -581,18 +581,14 @@ var dtpOverview = Utils.defineClass({
const workspaceAppGridBox =
this._cachedWorkspaceBoxes.get(OverviewControls.ControlsState.APP_GRID);
- if (Config.PACKAGE_VERSION > '40.3') {
- const monitor = Main.layoutManager.findMonitorForActor(this._container);
- const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor.index);
- const workAreaBox = new Clutter.ActorBox();
-
- workAreaBox.set_origin(startX, startY);
- workAreaBox.set_size(workArea.width, workArea.height);
-
- params = [workAreaBox, searchHeight, dashHeight, workspaceAppGridBox]
- } else {
- params = [box, startX, searchHeight, dashHeight, workspaceAppGridBox];
- }
+ const monitor = Main.layoutManager.findMonitorForActor(this._container);
+ const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor.index);
+ const workAreaBox = new Clutter.ActorBox();
+
+ workAreaBox.set_origin(startX, startY);
+ workAreaBox.set_size(workArea.width, workArea.height);
+
+ params = [workAreaBox, searchHeight, dashHeight, workspaceAppGridBox]
let appDisplayBox;
if (!transitionParams.transitioning) {
--
2.47.1

View File

@ -0,0 +1,261 @@
From 21c6b13e951e342e4f1e1178afa28f1303b19f2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Mon, 5 May 2025 15:31:12 +0200
Subject: [PATCH] dash-to-panel: Stop messing with overview allocation
See upstream commits facbdbd437a and e544d2c7a.
---
extensions/dash-to-panel/overview.js | 225 ---------------------------
1 file changed, 225 deletions(-)
diff --git a/extensions/dash-to-panel/overview.js b/extensions/dash-to-panel/overview.js
index 38f04c75..9b0a8e71 100644
--- a/extensions/dash-to-panel/overview.js
+++ b/extensions/dash-to-panel/overview.js
@@ -70,7 +70,6 @@ var dtpOverview = Utils.defineClass({
this._optionalNumberOverlay();
this._optionalClickToExit();
this._toggleDash();
- this._hookupAllocation();
this._signalsHandler.add([
Me.settings,
@@ -81,10 +80,6 @@ var dtpOverview = Utils.defineClass({
},
disable: function () {
- Utils.hookVfunc(Workspace.WorkspaceBackground.prototype, 'allocate', Workspace.WorkspaceBackground.prototype.vfunc_allocate);
- Utils.hookVfunc(OverviewControls.ControlsManagerLayout.prototype, 'allocate', OverviewControls.ControlsManagerLayout.prototype.vfunc_allocate);
- OverviewControls.ControlsManagerLayout.prototype._computeWorkspacesBoxForState = this._oldComputeWorkspacesBoxForState;
-
this._signalsHandler.destroy();
this._injectionsHandler.destroy();
@@ -481,224 +476,4 @@ var dtpOverview = Utils.defineClass({
]);
return true;
},
-
- _hookupAllocation: function() {
- Utils.hookVfunc(OverviewControls.ControlsManagerLayout.prototype, 'allocate', function vfunc_allocate(container, box) {
- const childBox = new Clutter.ActorBox();
-
- const { spacing } = this;
-
- let startY = 0;
- let startX = 0;
-
- if (Me.settings.get_boolean('stockgs-keep-top-panel') && Main.layoutManager.panelBox.y === Main.layoutManager.primaryMonitor.y) {
- startY = Main.layoutManager.panelBox.height;
- box.y1 += startY;
- }
-
- const panel = global.dashToPanel.panels[0];
- if(panel) {
- switch (panel.getPosition()) {
- case St.Side.TOP:
- startY = panel.panelBox.height;
- box.y1 += startY;
- break;
- case St.Side.LEFT:
- startX = panel.panelBox.width;
- box.x1 += startX;
- break;
- case St.Side.RIGHT:
- box.x2 -= panel.panelBox.width;
- break;
-
- }
- }
-
-
- const [width, height] = box.get_size();
- let availableHeight = height;
-
- // Search entry
- let [searchHeight] = this._searchEntry.get_preferred_height(width);
- childBox.set_origin(startX, startY);
- childBox.set_size(width, searchHeight);
- this._searchEntry.allocate(childBox);
-
- availableHeight -= searchHeight + spacing;
-
- // Dash
- const maxDashHeight = Math.round(box.get_height() * DASH_MAX_HEIGHT_RATIO);
- this._dash.setMaxSize(width, maxDashHeight);
-
- let [, dashHeight] = this._dash.get_preferred_height(width);
- if (Me.settings.get_boolean('stockgs-keep-dash'))
- dashHeight = Math.min(dashHeight, maxDashHeight);
- else
- dashHeight = spacing*5; // todo: determine proper spacing for window labels on maximized windows on workspace display
- childBox.set_origin(startX, startY + height - dashHeight);
- childBox.set_size(width, dashHeight);
- this._dash.allocate(childBox);
-
- availableHeight -= dashHeight + spacing;
-
- // Workspace Thumbnails
- let thumbnailsHeight = 0;
- if (this._workspacesThumbnails.visible) {
- const { expandFraction } = this._workspacesThumbnails;
- [thumbnailsHeight] =
- this._workspacesThumbnails.get_preferred_height(width);
- thumbnailsHeight = Math.min(
- thumbnailsHeight * expandFraction,
- height * WorkspaceThumbnail.MAX_THUMBNAIL_SCALE);
- childBox.set_origin(startX, startY + searchHeight + spacing);
- childBox.set_size(width, thumbnailsHeight);
- this._workspacesThumbnails.allocate(childBox);
- }
-
- // Workspaces
- let params = [box, startX, startY, searchHeight, dashHeight, thumbnailsHeight];
- const transitionParams = this._stateAdjustment.getStateTransitionParams();
-
- // Update cached boxes
- for (const state of Object.values(OverviewControls.ControlsState)) {
- this._cachedWorkspaceBoxes.set(
- state, this._computeWorkspacesBoxForState(state, ...params));
- }
-
- let workspacesBox;
- if (!transitionParams.transitioning) {
- workspacesBox = this._cachedWorkspaceBoxes.get(transitionParams.currentState);
- } else {
- const initialBox = this._cachedWorkspaceBoxes.get(transitionParams.initialState);
- const finalBox = this._cachedWorkspaceBoxes.get(transitionParams.finalState);
- workspacesBox = initialBox.interpolate(finalBox, transitionParams.progress);
- }
-
- this._workspacesDisplay.allocate(workspacesBox);
-
- // AppDisplay
- if (this._appDisplay.visible) {
- const workspaceAppGridBox =
- this._cachedWorkspaceBoxes.get(OverviewControls.ControlsState.APP_GRID);
-
- const monitor = Main.layoutManager.findMonitorForActor(this._container);
- const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor.index);
- const workAreaBox = new Clutter.ActorBox();
-
- workAreaBox.set_origin(startX, startY);
- workAreaBox.set_size(workArea.width, workArea.height);
-
- params = [workAreaBox, searchHeight, dashHeight, workspaceAppGridBox]
-
- let appDisplayBox;
- if (!transitionParams.transitioning) {
- appDisplayBox =
- this._getAppDisplayBoxForState(transitionParams.currentState, ...params);
- } else {
- const initialBox =
- this._getAppDisplayBoxForState(transitionParams.initialState, ...params);
- const finalBox =
- this._getAppDisplayBoxForState(transitionParams.finalState, ...params);
-
- appDisplayBox = initialBox.interpolate(finalBox, transitionParams.progress);
- }
-
- this._appDisplay.allocate(appDisplayBox);
- }
-
- // Search
- childBox.set_origin(0, startY + searchHeight + spacing);
- childBox.set_size(width, availableHeight);
-
- this._searchController.allocate(childBox);
-
- this._runPostAllocation();
- });
-
- this._oldComputeWorkspacesBoxForState = OverviewControls.ControlsManagerLayout.prototype._computeWorkspacesBoxForState;
- OverviewControls.ControlsManagerLayout.prototype._computeWorkspacesBoxForState = function _computeWorkspacesBoxForState(state, box, startX, startY, searchHeight, dashHeight, thumbnailsHeight) {
- const workspaceBox = box.copy();
- const [width, height] = workspaceBox.get_size();
- const { spacing } = this;
- const { expandFraction } = this._workspacesThumbnails;
-
- switch (state) {
- case OverviewControls.ControlsState.HIDDEN:
- break;
- case OverviewControls.ControlsState.WINDOW_PICKER:
- workspaceBox.set_origin(startX,
- startY + searchHeight + spacing +
- thumbnailsHeight + spacing * expandFraction);
- workspaceBox.set_size(width,
- height -
- dashHeight - spacing -
- searchHeight - spacing -
- thumbnailsHeight - spacing * expandFraction);
- break;
- case OverviewControls.ControlsState.APP_GRID:
- workspaceBox.set_origin(startX, startY + searchHeight + spacing);
- workspaceBox.set_size(
- width,
- Math.round(height * SMALL_WORKSPACE_RATIO));
- break;
- }
-
- return workspaceBox;
- }
-
- Utils.hookVfunc(Workspace.WorkspaceBackground.prototype, 'allocate', function vfunc_allocate(box) {
- const [width, height] = box.get_size();
- const { scaleFactor } = St.ThemeContext.get_for_stage(global.stage);
- const scaledHeight = height - (BACKGROUND_MARGIN * 2 * scaleFactor);
- const scaledWidth = (scaledHeight / height) * width;
-
- const scaledBox = box.copy();
- scaledBox.set_origin(
- box.x1 + (width - scaledWidth) / 2,
- box.y1 + (height - scaledHeight) / 2);
- scaledBox.set_size(scaledWidth, scaledHeight);
-
- const progress = this._stateAdjustment.value;
-
- if (progress === 1)
- box = scaledBox;
- else if (progress !== 0)
- box = box.interpolate(scaledBox, progress);
-
- this.set_allocation(box);
-
- const themeNode = this.get_theme_node();
- const contentBox = themeNode.get_content_box(box);
-
- this._bin.allocate(contentBox);
-
-
- const [contentWidth, contentHeight] = contentBox.get_size();
- const monitor = Main.layoutManager.monitors[this._monitorIndex];
- let xOff = (contentWidth / this._workarea.width) *
- (this._workarea.x - monitor.x);
- let yOff = (contentHeight / this._workarea.height) *
- (this._workarea.y - monitor.y);
-
- let startX = -xOff;
- let startY = -yOff;
- const panel = Utils.find(global.dashToPanel.panels, p => p.monitor.index == this._monitorIndex);
- switch (panel.getPosition()) {
- case St.Side.TOP:
- yOff += panel.panelBox.height;
- startY -= panel.panelBox.height;
- break;
- case St.Side.BOTTOM:
- yOff += panel.panelBox.height;
- break;
- case St.Side.RIGHT:
- xOff += panel.panelBox.width;
- break;
- }
- contentBox.set_origin(startX, startY);
- contentBox.set_size(xOff + contentWidth, yOff + contentHeight);
- this._backgroundGroup.allocate(contentBox);
- });
-
- }
});
--
2.49.0

View File

@ -0,0 +1,242 @@
From a796215ddce14ebe80774b99e29d0d28109c818b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 6 Mar 2024 20:14:14 +0100
Subject: [PATCH] desktop-icons: Handle touch events
File icons currently only deal with button events. Split up the
current handlers and use them to handle touch events as well.
---
extensions/desktop-icons/fileItem.js | 181 +++++++++++++++++++--------
1 file changed, 128 insertions(+), 53 deletions(-)
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
index 37ee54db..26afddb2 100644
--- a/extensions/desktop-icons/fileItem.js
+++ b/extensions/desktop-icons/fileItem.js
@@ -140,6 +140,7 @@ var FileItem = GObject.registerClass({
this._container.connect('leave-event', (actor, event) => this._onLeave(actor, event));
this._container.connect('enter-event', (actor, event) => this._onEnter(actor, event));
this._container.connect('button-release-event', (actor, event) => this._onReleaseButton(actor, event));
+ this._container.connect('touch-event', (actor, event) => this._onTouchEvent(actor, event));
/* Set the metadata and update relevant UI */
this._updateMetadataFromFileInfo(fileInfo);
@@ -229,6 +230,10 @@ var FileItem = GObject.registerClass({
if (this._iconAllocationIdleId)
GLib.source_remove(this._iconAllocationIdleId);
+ if (this._longPressTimeoutId)
+ GLib.source_remove(this._longPressTimeoutId);
+ delete this._longPressTimeoutId;
+
/* Menu */
this._removeMenu();
}
@@ -731,58 +736,141 @@ var FileItem = GObject.registerClass({
}
_updateClickState(event) {
+ const eventType = event.type();
+ const isButton =
+ eventType === Clutter.EventType.BUTTON_PRESS ||
+ eventType === Clutter.EventType.BUTTON_RELEASE;
+ const button = isButton ? event.get_button() : 0;
+ const time = event.get_time();
+
let settings = Clutter.Settings.get_default();
- if ((event.get_button() == this._lastClickButton) &&
- ((event.get_time() - this._lastClickTime) < settings.double_click_time))
+ if (button === this._lastClickButton &&
+ (time - this._lastClickTime) < settings.double_click_time)
this._clickCount++;
else
this._clickCount = 1;
- this._lastClickTime = event.get_time();
- this._lastClickButton = event.get_button();
+ this._lastClickTime = time;
+ this._lastClickButton = button;
}
_getClickCount() {
return this._clickCount;
}
+ _handlePressEvent(event) {
+ const pressSequence = event.get_event_sequence();
+ if (this._pressSequence &&
+ pressSequence?.get_slot() !== this._pressSequence.get_slot())
+ return Clutter.EVENT_PROPAGATE;
+
+ this._primaryButtonPressed = true;
+ this._pressSequence = pressSequence;
+ this._pressDevice = event.get_device();
+
+ if (this._getClickCount() !== 1)
+ return Clutter.EVENT_STOP;
+
+ const [x, y] = event.get_coords();
+ this._buttonPressInitialX = x;
+ this._buttonPressInitialY = y;
+
+ const shiftPressed = !!(event.get_state() & Clutter.ModifierType.SHIFT_MASK);
+ const controlPressed = !!(event.get_state() & Clutter.ModifierType.CONTROL_MASK);
+ if (controlPressed || shiftPressed)
+ this.emit('selected', true, false, !this._isSelected);
+ else if (!this._isSelected)
+ this.emit('selected', false, false, true);
+
+ return Clutter.EVENT_STOP;
+ }
+
+ _handleSecondaryPress() {
+ if (!this.isSelected)
+ this.emit('selected', false, false, true);
+ this._ensureMenu().toggle();
+ if (this._actionOpenWith) {
+ let allowOpenWith = Extension.desktopManager.getNumberOfSelectedItems() === 1;
+ this._actionOpenWith.setSensitive(allowOpenWith);
+ }
+ const specialFilesSelected =
+ Extension.desktopManager.checkIfSpecialFilesAreSelected();
+ if (this._actionCut)
+ this._actionCut.setSensitive(!specialFilesSelected);
+ if (this._actionCopy)
+ this._actionCopy.setSensitive(!specialFilesSelected);
+ if (this._actionTrash)
+ this._actionTrash.setSensitive(!specialFilesSelected);
+ return Clutter.EVENT_STOP;
+ }
+
+ _handleReleaseEvent(event) {
+ if (this._longPressTimeoutId)
+ GLib.source_remove(this._longPressTimeoutId);
+ delete this._longPressTimeoutId;
+
+ if (!this._primaryButtonPressed || this._pressDevice !== event.get_device())
+ return Clutter.EVENT_PROPAGATE;
+
+ const pressSequence = event.get_event_sequence();
+ if (this._pressSequence &&
+ pressSequence?.get_slot() !== this._pressSequence.get_slot())
+ return Clutter.EVENT_PROPAGATE;
+
+ // primaryButtonPressed is TRUE only if the user has pressed the button
+ // over an icon, and if (s)he has not started a drag&drop operation
+ this._primaryButtonPressed = false;
+ delete this._pressDevice;
+ delete this._pressSequence;
+
+ let shiftPressed = !!(event.get_state() & Clutter.ModifierType.SHIFT_MASK);
+ let controlPressed = !!(event.get_state() & Clutter.ModifierType.CONTROL_MASK);
+ if (!controlPressed && !shiftPressed)
+ this.emit('selected', false, false, true);
+ if (this._getClickCount() === 1 && Prefs.CLICK_POLICY_SINGLE && !shiftPressed && !controlPressed)
+ this.doOpen();
+ if (this._getClickCount() === 2 && !Prefs.CLICK_POLICY_SINGLE)
+ this.doOpen();
+ return Clutter.EVENT_STOP;
+ }
+
+ _onTouchEvent(actor, event) {
+ // on X11, let pointer emulation deal with touch
+ if (!Meta.is_wayland_compositor())
+ return Clutter.EVENT_PROPAGATE;
+
+ const type = event.type();
+ if (type === Clutter.EventType.TOUCH_BEGIN) {
+ Extension.desktopManager.endRubberBand();
+ this._updateClickState(event);
+
+ if (!this._handlePressEvent(event))
+ return Clutter.EVENT_PROPAGATE;
+
+ const { longPressDuration } = Clutter.Settings.get_default();
+ this._longPressTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
+ longPressDuration,
+ () => {
+ this._handleSecondaryPress();
+ delete this._longPressTimeoutId;
+ return GLib.SOURCE_REMOVE;
+ });
+
+ return Clutter.EVENT_STOP;
+ } else if (type === Clutter.EventType.TOUCH_END) {
+ return this._handleReleaseEvent(event);
+ }
+ return Clutter.EVENT_PROPAGATE;
+ }
+
_onPressButton(actor, event) {
Extension.desktopManager.endRubberBand();
this._updateClickState(event);
let button = event.get_button();
- if (button == 3) {
- if (!this.isSelected)
- this.emit('selected', false, false, true);
- this._ensureMenu().toggle();
- if (this._actionOpenWith) {
- let allowOpenWith = (Extension.desktopManager.getNumberOfSelectedItems() == 1);
- this._actionOpenWith.setSensitive(allowOpenWith);
- }
- let specialFilesSelected = Extension.desktopManager.checkIfSpecialFilesAreSelected();
- if (this._actionCut)
- this._actionCut.setSensitive(!specialFilesSelected);
- if (this._actionCopy)
- this._actionCopy.setSensitive(!specialFilesSelected);
- if (this._actionTrash)
- this._actionTrash.setSensitive(!specialFilesSelected);
- return Clutter.EVENT_STOP;
- } else if (button == 1) {
- if (this._getClickCount() == 1) {
- let [x, y] = event.get_coords();
- this._primaryButtonPressed = true;
- this._buttonPressInitialX = x;
- this._buttonPressInitialY = y;
- let shiftPressed = !!(event.get_state() & Clutter.ModifierType.SHIFT_MASK);
- let controlPressed = !!(event.get_state() & Clutter.ModifierType.CONTROL_MASK);
- if (controlPressed || shiftPressed) {
- this.emit('selected', true, false, !this._isSelected);
- } else {
- if (!this._isSelected)
- this.emit('selected', false, false, true);
- }
- }
- return Clutter.EVENT_STOP;
- }
+ if (button == 3)
+ return this._handleSecondaryPress();
+ if (button == 1)
+ return this._handlePressEvent(event);
return Clutter.EVENT_PROPAGATE;
}
@@ -821,22 +909,9 @@ var FileItem = GObject.registerClass({
_onReleaseButton(actor, event) {
let button = event.get_button();
- if (button == 1) {
- // primaryButtonPressed is TRUE only if the user has pressed the button
- // over an icon, and if (s)he has not started a drag&drop operation
- if (this._primaryButtonPressed) {
- this._primaryButtonPressed = false;
- let shiftPressed = !!(event.get_state() & Clutter.ModifierType.SHIFT_MASK);
- let controlPressed = !!(event.get_state() & Clutter.ModifierType.CONTROL_MASK);
- if (!controlPressed && !shiftPressed)
- this.emit('selected', false, false, true);
- if ((this._getClickCount() == 1) && Prefs.CLICK_POLICY_SINGLE && !shiftPressed && !controlPressed)
- this.doOpen();
- return Clutter.EVENT_STOP;
- }
- if ((this._getClickCount() == 2) && (!Prefs.CLICK_POLICY_SINGLE))
- this.doOpen();
- }
+ if (button == 1)
+ return this._handleReleaseEvent(event);
+
return Clutter.EVENT_PROPAGATE;
}
--
2.44.0

View File

@ -0,0 +1,40 @@
From 8389801814c84c797a29f986f15e7ea4dd27bccc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 6 Mar 2024 13:48:49 +0100
Subject: [PATCH] desktop-icons: Notify icon drags
Components like the message tray will use the signal to hide
their layout actor from picks, so that it does no interfere
with the DND operation.
---
extensions/desktop-icons/desktopManager.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/extensions/desktop-icons/desktopManager.js b/extensions/desktop-icons/desktopManager.js
index 75b2a22a..c3b3f7e4 100644
--- a/extensions/desktop-icons/desktopManager.js
+++ b/extensions/desktop-icons/desktopManager.js
@@ -547,17 +547,20 @@ var DesktopManager = GObject.registerClass({
this._draggableContainer.allocate_preferred_size(0, 0);
this._draggable.startDrag(x, y, global.get_current_time(), event.get_event_sequence());
+ Main.overview.beginItemDrag(this._draggableContainer);
}
_onDragCancelled() {
let event = Clutter.get_current_event();
let [x, y] = event.get_coords();
this._dragCancelled = true;
+ Main.overview.cancelledItemDrag(this._draggableContainer);
}
_onDragEnd() {
this._inDrag = false;
Main.layoutManager.uiGroup.remove_child(this._draggableContainer);
+ Main.overview.endItemDrag(this._draggableContainer);
}
_dragActorDropped(event) {
--
2.44.0

View File

@ -0,0 +1,51 @@
From 64d4841a77293a45e769b868e1109b63811be7d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 2 Jul 2024 19:04:10 +0200
Subject: [PATCH] workspace-indicator: Re-fittsify workspace previews
For the window-list extension, it is important that the workspace
previews extend to the bottom edge for easier click targets.
That broke while merging the code with the workspace-indicator,
fix it again by moving the padding from the parent box into the
thumbnail children.
---
.../workspace-indicator/stylesheet-dark.css | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/extensions/workspace-indicator/stylesheet-dark.css b/extensions/workspace-indicator/stylesheet-dark.css
index fb0e8b1a..017d844a 100644
--- a/extensions/workspace-indicator/stylesheet-dark.css
+++ b/extensions/workspace-indicator/stylesheet-dark.css
@@ -11,7 +11,6 @@
}
.workspace-indicator .workspaces-box {
- padding: 5px;
spacing: 3px;
}
@@ -20,6 +19,20 @@
spacing: 6px;
}
+.workspace-indicator .workspace-box {
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+.workspace-indicator StButton:first-child:ltr > .workspace-box,
+.workspace-indicator StButton:last-child:rtl > .workspace-box {
+ padding-left: 5px;
+}
+.workspace-indicator StButton:last-child:ltr > .workspace-box,
+.workspace-indicator StButton:first-child:rtl > .workspace-box {
+ padding-right: 5px;
+}
+
.workspace-indicator-menu .workspace-box {
spacing: 6px;
}
--
2.45.2

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
From c4fafbcf01fc3c3846e5fe7d60d9aac623afdd9f Mon Sep 17 00:00:00 2001 From 2bc8aa48edae1465a5c51be9d864a159b1009bc7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 18 Apr 2024 18:09:40 +0200 Date: Thu, 18 Apr 2024 18:09:40 +0200
Subject: [PATCH 01/29] prefs: Fix loading custom CSS Subject: [PATCH 01/29] prefs: Fix loading custom CSS
@ -80,10 +80,10 @@ index 567f3e99..d307dcac 100644
context.add_provider(cssProvider, context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-- --
2.44.0 2.47.0
From a6e988875f52a49289677ca4d883a98b5515033f Mon Sep 17 00:00:00 2001 From d1380931b47adb23c36e5499cbd931fba4d63bd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 23 Mar 2022 19:59:14 +0100 Date: Wed, 23 Mar 2022 19:59:14 +0100
Subject: [PATCH 02/29] build: Remove unused stylesheets Subject: [PATCH 02/29] build: Remove unused stylesheets
@ -363,10 +363,10 @@ index 71efa039..19858a39 100644
extension_sources += files('prefs.js') extension_sources += files('prefs.js')
-- --
2.44.0 2.47.0
From 071226445e95d1a5551378aaf3c83db625fc2422 Mon Sep 17 00:00:00 2001 From c97c668cf178968d70a9f2de3308e37e0b931acb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 12:38:33 +0100 Date: Wed, 21 Feb 2024 12:38:33 +0100
Subject: [PATCH 03/29] workspace-indicator: Move indicator code into separate Subject: [PATCH 03/29] workspace-indicator: Move indicator code into separate
@ -859,7 +859,7 @@ index 19858a39..eb25b9cc 100644
+extension_sources += files('prefs.js', 'workspaceIndicator.js') +extension_sources += files('prefs.js', 'workspaceIndicator.js')
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
new file mode 100644 new file mode 100644
index 00000000..b98de047 index 00000000..c88ffc9c
--- /dev/null --- /dev/null
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -0,0 +1,454 @@ @@ -0,0 +1,454 @@
@ -1180,7 +1180,7 @@ index 00000000..b98de047
+ } + }
+ +
+ _onDestroy() { + _onDestroy() {
+ for (let i = i; i < this._workspaceManagerSignals.length; i++) + for (let i = 0; i < this._workspaceManagerSignals.length; i++)
+ global.workspace_manager.disconnect(this._workspaceManagerSignals[i]); + global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
+ +
+ if (this._settingsChangedId) { + if (this._settingsChangedId) {
@ -1329,10 +1329,10 @@ index 10b1d517..bd39ab61 100644
extensions/workspace-indicator/prefs.js extensions/workspace-indicator/prefs.js
+extensions/workspace-indicator/workspaceIndicator.js +extensions/workspace-indicator/workspaceIndicator.js
-- --
2.44.0 2.47.0
From 4720bf9f69c91c6fa39897534921eb4f2eceb8eb Mon Sep 17 00:00:00 2001 From 34ba767aa622ac9122463f4649f7a8854a56f25d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 19:09:38 +0100 Date: Wed, 21 Feb 2024 19:09:38 +0100
Subject: [PATCH 04/29] workspace-indicator: Use descendant style selectors Subject: [PATCH 04/29] workspace-indicator: Use descendant style selectors
@ -1375,7 +1375,7 @@ index 84aaf454..4e12cce4 100644
} }
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index b98de047..101c89c6 100644 index c88ffc9c..28fc3ea8 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -263,6 +263,8 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -263,6 +263,8 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -1406,10 +1406,10 @@ index b98de047..101c89c6 100644
reactive: true, reactive: true,
}); });
-- --
2.44.0 2.47.0
From 22f44ae9f21337a11a09447763fbd223e37f3d56 Mon Sep 17 00:00:00 2001 From c5843b7870e0ce0cbf7b2f587193b93c63062105 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 12:48:43 +0100 Date: Wed, 21 Feb 2024 12:48:43 +0100
Subject: [PATCH 05/29] window-list: Use consistent style class prefix Subject: [PATCH 05/29] window-list: Use consistent style class prefix
@ -1473,10 +1473,10 @@ index cdfe5b61..c24f159f 100644
this._delegate = this; this._delegate = this;
-- --
2.44.0 2.47.0
From c8bb217d2053cf8d7db5f4866f834b6d06250427 Mon Sep 17 00:00:00 2001 From a81dbea8250c85b950c83048f178c700635a8c38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 23 Feb 2024 01:59:15 +0100 Date: Fri, 23 Feb 2024 01:59:15 +0100
Subject: [PATCH 06/29] workspace-indicator: Allow overriding base style class Subject: [PATCH 06/29] workspace-indicator: Allow overriding base style class
@ -1489,7 +1489,7 @@ to one of the extensions.
1 file changed, 10 insertions(+), 3 deletions(-) 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 101c89c6..ba1e05d7 100644 index 28fc3ea8..01604b91 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -25,11 +25,13 @@ const TOOLTIP_ANIMATION_TIME = 150; @@ -25,11 +25,13 @@ const TOOLTIP_ANIMATION_TIME = 150;
@ -1526,10 +1526,10 @@ index 101c89c6..ba1e05d7 100644
let container = new St.Widget({ let container = new St.Widget({
layout_manager: new Clutter.BinLayout(), layout_manager: new Clutter.BinLayout(),
-- --
2.44.0 2.47.0
From fc27a7f0e6da8647380b5bbe901b27ec0e5aa728 Mon Sep 17 00:00:00 2001 From e1c5b589fca9021b960e19f043ca26735c8b02de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 23 Feb 2024 01:58:50 +0100 Date: Fri, 23 Feb 2024 01:58:50 +0100
Subject: [PATCH 07/29] window-list: Override base style class Subject: [PATCH 07/29] window-list: Override base style class
@ -1600,10 +1600,10 @@ index c24f159f..1a1d15cd 100644
this.menu.actor.remove_style_class_name('panel-menu'); this.menu.actor.remove_style_class_name('panel-menu');
-- --
2.44.0 2.47.0
From 3838a915d953b910aa2d9ec82cd22dcf2e0f7440 Mon Sep 17 00:00:00 2001 From c673a9d7169cc1a2f6df9c3eeea4b11f8968dc19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 12:48:43 +0100 Date: Wed, 21 Feb 2024 12:48:43 +0100
Subject: [PATCH 08/29] window-list: Externally adjust workspace menu Subject: [PATCH 08/29] window-list: Externally adjust workspace menu
@ -1688,10 +1688,10 @@ index 1a1d15cd..4290d58a 100644
layout_manager: new Clutter.BinLayout(), layout_manager: new Clutter.BinLayout(),
x_expand: true, x_expand: true,
-- --
2.44.0 2.47.0
From 7d2abee5e5de19bba95e4fb66692e08ace67c972 Mon Sep 17 00:00:00 2001 From 3271e93695782d06ada9752144c650605ceed76a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 21 Mar 2024 16:49:35 +0100 Date: Thu, 21 Mar 2024 16:49:35 +0100
Subject: [PATCH 09/29] window-list: Handle changes to workspace menu Subject: [PATCH 09/29] window-list: Handle changes to workspace menu
@ -1731,10 +1731,10 @@ index c58df434..a011bc90 100644
this.set_position( this.set_position(
this._monitor.x, this._monitor.x,
-- --
2.44.0 2.47.0
From bc71e5e7a21249868a481238193e1ca15eba5699 Mon Sep 17 00:00:00 2001 From 314072792bba618a85897dc085bb72debe3ec6b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 15:58:39 +0100 Date: Wed, 21 Feb 2024 15:58:39 +0100
Subject: [PATCH 10/29] workspace-indicator: Don't use SCHEMA/KEY constants Subject: [PATCH 10/29] workspace-indicator: Don't use SCHEMA/KEY constants
@ -1749,7 +1749,7 @@ do the same here.
1 file changed, 2 insertions(+), 5 deletions(-) 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index ba1e05d7..60e084e2 100644 index 01604b91..6e3ad7b5 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -17,9 +17,6 @@ const Main = imports.ui.main; @@ -17,9 +17,6 @@ const Main = imports.ui.main;
@ -1775,10 +1775,10 @@ index ba1e05d7..60e084e2 100644
} }
-- --
2.44.0 2.47.0
From 66cf82e0676179a2565a75bbad1c31bb539c065c Mon Sep 17 00:00:00 2001 From 002a0bb8036a997a70acda017e4016fd9fd51806 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 18:59:23 +0100 Date: Wed, 21 Feb 2024 18:59:23 +0100
Subject: [PATCH 11/29] workspace-indicator: Use existing property Subject: [PATCH 11/29] workspace-indicator: Use existing property
@ -1790,7 +1790,7 @@ instead of getting it from the workspace manager again.
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 60e084e2..4f2188be 100644 index 6e3ad7b5..60356d74 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -454,7 +454,7 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -454,7 +454,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -1803,10 +1803,10 @@ index 60e084e2..4f2188be 100644
} }
}); });
-- --
2.44.0 2.47.0
From c51f0d790c7e4d575d770b63ad7c9632b4af79b1 Mon Sep 17 00:00:00 2001 From 4e2785910ceccc079305da1b9d0e2c810b1f982a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 16:14:24 +0100 Date: Wed, 21 Feb 2024 16:14:24 +0100
Subject: [PATCH 12/29] workspace-indicator: Don't use menu section Subject: [PATCH 12/29] workspace-indicator: Don't use menu section
@ -1820,7 +1820,7 @@ This removes another difference with the window-list copy.
1 file changed, 5 insertions(+), 7 deletions(-) 1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 4f2188be..66b71cd6 100644 index 60356d74..39d4e296 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -296,8 +296,6 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -296,8 +296,6 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -1872,10 +1872,10 @@ index 4f2188be..66b71cd6 100644
this._workspacesItems[i].label_actor = this._statusLabel; this._workspacesItems[i].label_actor = this._statusLabel;
this._workspacesItems[i].connect('activate', (actor, _event) => { this._workspacesItems[i].connect('activate', (actor, _event) => {
-- --
2.44.0 2.47.0
From ef3a5860782e67dffcb63c705422102f68bd68ad Mon Sep 17 00:00:00 2001 From 5f33bc574aee51700c92b940b23df0b7966450d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 13:05:15 +0100 Date: Wed, 21 Feb 2024 13:05:15 +0100
Subject: [PATCH 13/29] workspace-indicator: Support showing tooltips above Subject: [PATCH 13/29] workspace-indicator: Support showing tooltips above
@ -1889,7 +1889,7 @@ used in the copy that is included with the window-list extension.
1 file changed, 5 insertions(+), 4 deletions(-) 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 66b71cd6..bc9e222b 100644 index 39d4e296..83713b6f 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -227,16 +227,17 @@ class WorkspaceThumbnail extends St.Button { @@ -227,16 +227,17 @@ class WorkspaceThumbnail extends St.Button {
@ -1915,10 +1915,10 @@ index 66b71cd6..bc9e222b 100644
} }
-- --
2.44.0 2.47.0
From 3161d6c59fc8f7dd1b5c5f21082a5fd00cbcf5a9 Mon Sep 17 00:00:00 2001 From a65fd9e61cf3f3a83116815482843b1b20eef20f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 17:37:16 +0100 Date: Wed, 21 Feb 2024 17:37:16 +0100
Subject: [PATCH 14/29] workspace-indicator: Only change top bar redirect when Subject: [PATCH 14/29] workspace-indicator: Only change top bar redirect when
@ -1931,7 +1931,7 @@ the check will allow to use the same code in the window list.
1 file changed, 21 insertions(+), 2 deletions(-) 1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index bc9e222b..ac270d64 100644 index 83713b6f..fa05a54c 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -309,6 +309,16 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -309,6 +309,16 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -1981,10 +1981,10 @@ index bc9e222b..ac270d64 100644
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY); : Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
} }
-- --
2.44.0 2.47.0
From 3afe55799368e1f899d2949bcc981718c6498623 Mon Sep 17 00:00:00 2001 From 521b224b17cb15df49a32d5c2dffe5ce65285df4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 16:13:00 +0100 Date: Wed, 21 Feb 2024 16:13:00 +0100
Subject: [PATCH 15/29] workspace-indicator: Small cleanup Subject: [PATCH 15/29] workspace-indicator: Small cleanup
@ -1996,7 +1996,7 @@ window-list extension, so use that.
1 file changed, 9 insertions(+), 10 deletions(-) 1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index ac270d64..9b22102a 100644 index fa05a54c..bbb51c41 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -422,19 +422,18 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -422,19 +422,18 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -2029,10 +2029,10 @@ index ac270d64..9b22102a 100644
this._statusLabel.set_text(this._labelText()); this._statusLabel.set_text(this._labelText());
-- --
2.44.0 2.47.0
From 2eef4f6dd803021303be7c4f15775a41389debb3 Mon Sep 17 00:00:00 2001 From 3145e45a2d897b177e7395cec71a1293b6857a36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 16:13:00 +0100 Date: Wed, 21 Feb 2024 16:13:00 +0100
Subject: [PATCH 16/29] workspace-indicator: Simplify getting status text Subject: [PATCH 16/29] workspace-indicator: Simplify getting status text
@ -2049,7 +2049,7 @@ for menu items.
1 file changed, 12 insertions(+), 12 deletions(-) 1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 9b22102a..d8b29f58 100644 index bbb51c41..d401b6ab 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -283,7 +283,7 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -283,7 +283,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -2115,10 +2115,10 @@ index 9b22102a..d8b29f58 100644
_updateThumbnails() { _updateThumbnails() {
-- --
2.44.0 2.47.0
From 8785f56bf69272e664c207856bfb7417342550c6 Mon Sep 17 00:00:00 2001 From 30adbc349b382c69c7592cd674d7837f6c9185c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 16:35:09 +0100 Date: Wed, 21 Feb 2024 16:35:09 +0100
Subject: [PATCH 17/29] workspace-indicator: Include n-workspaces in status Subject: [PATCH 17/29] workspace-indicator: Include n-workspaces in status
@ -2136,7 +2136,7 @@ bigger click/touch target, so copy the window-list behavior.
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index d8b29f58..756758b3 100644 index d401b6ab..29b8a671 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -403,8 +403,9 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -403,8 +403,9 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -2151,10 +2151,10 @@ index d8b29f58..756758b3 100644
_updateMenuLabels() { _updateMenuLabels() {
-- --
2.44.0 2.47.0
From 6e483b472fa4b5a7be8f00b1ef87f28658f815aa Mon Sep 17 00:00:00 2001 From 675e91b7b521b4c8d7f53a9f3d028ab7300281dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 22 Feb 2024 04:45:23 +0100 Date: Thu, 22 Feb 2024 04:45:23 +0100
Subject: [PATCH 18/29] workspace-indicator: Tweak preview style Subject: [PATCH 18/29] workspace-indicator: Tweak preview style
@ -2206,10 +2206,10 @@ index 4e12cce4..f74f7e88 100644
.workspace-indicator-window-preview.active { .workspace-indicator-window-preview.active {
-- --
2.44.0 2.47.0
From cf06ac2f9b7e2412fc555721b9c6d34fea7e0b45 Mon Sep 17 00:00:00 2001 From 011af97ab27a4e7be9dab937754470e890bc131c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 23:22:58 +0100 Date: Wed, 21 Feb 2024 23:22:58 +0100
Subject: [PATCH 19/29] workspace-indicator: Support light style Subject: [PATCH 19/29] workspace-indicator: Support light style
@ -2344,10 +2344,10 @@ index f74f7e88..b0f7d171 100644
-} -}
+@import url("stylesheet-dark.css"); +@import url("stylesheet-dark.css");
-- --
2.44.0 2.47.0
From a5fd131564600f3117f0dbd27a1bb82592ec1132 Mon Sep 17 00:00:00 2001 From bcb34a3a91a5140b5ecc6f9582dd9f80272c7e32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 21 Feb 2024 13:08:52 +0100 Date: Wed, 21 Feb 2024 13:08:52 +0100
Subject: [PATCH 20/29] window-list: Use actual copy of workspace-indicator Subject: [PATCH 20/29] window-list: Use actual copy of workspace-indicator
@ -2905,10 +2905,10 @@ index 4290d58a..00000000
-}); -});
- -
-- --
2.44.0 2.47.0
From fbcf6cb317b58dc32c67952b54cec925adfbad34 Mon Sep 17 00:00:00 2001 From 36e4714c31398b74eb1727197f40bbd81ccfd6f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 20 Feb 2024 17:39:49 +0100 Date: Tue, 20 Feb 2024 17:39:49 +0100
Subject: [PATCH 21/29] workspace-indicator: Simplify scroll handling Subject: [PATCH 21/29] workspace-indicator: Simplify scroll handling
@ -2920,7 +2920,7 @@ via scroll events. Use that instead of implementing our own.
1 file changed, 4 insertions(+), 17 deletions(-) 1 file changed, 4 insertions(+), 17 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 756758b3..8e3fec56 100644 index 29b8a671..1dd3ed6b 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -307,8 +307,10 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -307,8 +307,10 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -2957,10 +2957,10 @@ index 756758b3..8e3fec56 100644
- } - }
}); });
-- --
2.44.0 2.47.0
From 346960098322af549c55a6eaf1628f1743585df1 Mon Sep 17 00:00:00 2001 From f3154702594a814e5131252ab84b9daf0553ada3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 27 Feb 2024 21:20:45 +0100 Date: Tue, 27 Feb 2024 21:20:45 +0100
Subject: [PATCH 22/29] workspace-indicator: Handle active indication in Subject: [PATCH 22/29] workspace-indicator: Handle active indication in
@ -2974,7 +2974,7 @@ workspace ourselves.
1 file changed, 24 insertions(+), 14 deletions(-) 1 file changed, 24 insertions(+), 14 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 8e3fec56..01b831f7 100644 index 1dd3ed6b..ae526929 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -116,8 +116,14 @@ class WorkspaceLayout extends Clutter.LayoutManager { @@ -116,8 +116,14 @@ class WorkspaceLayout extends Clutter.LayoutManager {
@ -3058,10 +3058,10 @@ index 8e3fec56..01b831f7 100644
_activate(index) { _activate(index) {
-- --
2.44.0 2.47.0
From 76ec37876c295b9150e98c04e11189e464af7a94 Mon Sep 17 00:00:00 2001 From e854ad2e483489952691d5fbede37e3fec63737c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 20 Feb 2024 17:27:57 +0100 Date: Tue, 20 Feb 2024 17:27:57 +0100
Subject: [PATCH 23/29] workspace-indicator: Split out WorkspacePreviews Subject: [PATCH 23/29] workspace-indicator: Split out WorkspacePreviews
@ -3073,7 +3073,7 @@ into a dedicated class.
1 file changed, 49 insertions(+), 25 deletions(-) 1 file changed, 49 insertions(+), 25 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 01b831f7..a559b8e2 100644 index ae526929..e5be8081 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -280,6 +280,51 @@ const WorkspaceThumbnail = GObject.registerClass({ @@ -280,6 +280,51 @@ const WorkspaceThumbnail = GObject.registerClass({
@ -3209,10 +3209,10 @@ index 01b831f7..a559b8e2 100644
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
-- --
2.44.0 2.47.0
From 69c5eefbca44f58d10072115dd46ffada862cd48 Mon Sep 17 00:00:00 2001 From 18b40e7f586d4546bd64745a0b2d617655b87af3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Mon, 19 Feb 2024 14:42:04 +0100 Date: Mon, 19 Feb 2024 14:42:04 +0100
Subject: [PATCH 24/29] workspace-indicator: Handle preview overflow Subject: [PATCH 24/29] workspace-indicator: Handle preview overflow
@ -3246,7 +3246,7 @@ index f74f7e88..61d1e982 100644
padding: 5px; padding: 5px;
spacing: 3px; spacing: 3px;
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index a559b8e2..17cf7c89 100644 index e5be8081..d496d22d 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -20,6 +20,8 @@ const PopupMenu = imports.ui.popupMenu; @@ -20,6 +20,8 @@ const PopupMenu = imports.ui.popupMenu;
@ -3342,10 +3342,10 @@ index a559b8e2..17cf7c89 100644
_onDestroy() { _onDestroy() {
-- --
2.44.0 2.47.0
From 609674b2763bfd1536e8854b79d3c1bf265f00b9 Mon Sep 17 00:00:00 2001 From 422a5e6f67b23c3b9b0764ec313ad0ad864249db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Sun, 3 Mar 2024 15:05:23 +0100 Date: Sun, 3 Mar 2024 15:05:23 +0100
Subject: [PATCH 25/29] workspace-indicator: Support labels in previews Subject: [PATCH 25/29] workspace-indicator: Support labels in previews
@ -3359,7 +3359,7 @@ names to not lose functionality with regards to the current menu.
1 file changed, 55 insertions(+), 8 deletions(-) 1 file changed, 55 insertions(+), 8 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 17cf7c89..5e6d6300 100644 index d496d22d..f5ffdbb7 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -124,10 +124,23 @@ const WorkspaceThumbnail = GObject.registerClass({ @@ -124,10 +124,23 @@ const WorkspaceThumbnail = GObject.registerClass({
@ -3504,10 +3504,10 @@ index 17cf7c89..5e6d6300 100644
} }
-- --
2.44.0 2.47.0
From 40cfe3a41fa3823fce06824b82e663b8f63f4e6d Mon Sep 17 00:00:00 2001 From a0985eb24eafee329b6af6c2c2f7db4de7b103e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 20 Feb 2024 21:43:55 +0100 Date: Tue, 20 Feb 2024 21:43:55 +0100
Subject: [PATCH 26/29] workspace-indicator: Stop handling vertical layouts Subject: [PATCH 26/29] workspace-indicator: Stop handling vertical layouts
@ -3524,7 +3524,7 @@ previews and the actual layout.
1 file changed, 1 insertion(+), 5 deletions(-) 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 5e6d6300..aad2716a 100644 index f5ffdbb7..362c6372 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -475,8 +475,6 @@ class WorkspaceIndicator extends PanelMenu.Button { @@ -475,8 +475,6 @@ class WorkspaceIndicator extends PanelMenu.Button {
@ -3548,10 +3548,10 @@ index 5e6d6300..aad2716a 100644
this._statusLabel.visible = useMenu; this._statusLabel.visible = useMenu;
-- --
2.44.0 2.47.0
From 1cad76230f8f70a08a8ccbe0970641a7b6a717b5 Mon Sep 17 00:00:00 2001 From 74b64e860757d56f0d500165ba2e49024ead48d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Sun, 3 Mar 2024 15:05:23 +0100 Date: Sun, 3 Mar 2024 15:05:23 +0100
Subject: [PATCH 27/29] workspace-indicator: Also show previews in menu Subject: [PATCH 27/29] workspace-indicator: Also show previews in menu
@ -3614,7 +3614,7 @@ index 61d1e982..fb0e8b1a 100644
border-color: #9f9f9f; border-color: #9f9f9f;
} }
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index aad2716a..7b3c6fbe 100644 index 362c6372..ed5645db 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -439,7 +439,7 @@ const WorkspacePreviews = GObject.registerClass({ @@ -439,7 +439,7 @@ const WorkspacePreviews = GObject.registerClass({
@ -3649,7 +3649,7 @@ index aad2716a..7b3c6fbe 100644
} }
_onDestroy() { _onDestroy() {
for (let i = i; i < this._workspaceManagerSignals.length; i++) for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]); global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
- if (this._settingsChangedId) { - if (this._settingsChangedId) {
@ -3748,10 +3748,10 @@ index aad2716a..7b3c6fbe 100644
} }
}); });
-- --
2.44.0 2.47.0
From 20a2122ab7a435cb1a0840747a5d13be0d838a9e Mon Sep 17 00:00:00 2001 From f810340e1e7ffd7c1964ec950be8b0585afe9e7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 20 Feb 2024 22:00:57 +0100 Date: Tue, 20 Feb 2024 22:00:57 +0100
Subject: [PATCH 28/29] workspace-indicator: Make previews configurable Subject: [PATCH 28/29] workspace-indicator: Make previews configurable
@ -3898,7 +3898,7 @@ index 00000000..c7c634ca
+ </schema> + </schema>
+</schemalist> +</schemalist>
diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js
index 7b3c6fbe..9d566f41 100644 index ed5645db..14359a0e 100644
--- a/extensions/workspace-indicator/workspaceIndicator.js --- a/extensions/workspace-indicator/workspaceIndicator.js
+++ b/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js
@@ -22,8 +22,6 @@ const TOOLTIP_ANIMATION_TIME = 150; @@ -22,8 +22,6 @@ const TOOLTIP_ANIMATION_TIME = 150;
@ -3966,10 +3966,10 @@ index bd39ab61..4d551780 100644
+extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml +extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml
extensions/workspace-indicator/workspaceIndicator.js extensions/workspace-indicator/workspaceIndicator.js
-- --
2.44.0 2.47.0
From 597ed15f9e4a1fd6eeaaedaae59db30c4d379c3f Mon Sep 17 00:00:00 2001 From 952d2ca4e3e5b35b3a25336506b06ef0dca734a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 21 Mar 2024 17:27:09 +0100 Date: Thu, 21 Mar 2024 17:27:09 +0100
Subject: [PATCH 29/29] window-list: Expose workspace preview option Subject: [PATCH 29/29] window-list: Expose workspace preview option
@ -3998,5 +3998,5 @@ index e35990ff..79cd1355 100644
}); });
-- --
2.44.0 2.47.0

View File

@ -0,0 +1,206 @@
From 984a2672b4c4c41d9dab85c068f76efa98f81a56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 17 Dec 2024 01:09:34 +0100
Subject: [PATCH] window-list: Add attention indicator
Some X11 clients still rely on the traditional urgent/demand-attention
hints instead of notifications to request the user's attention.
Support these by adding a visual indication to the corresponding
buttons, based on the visual indicator in libadwaita's tabs.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/543
---
extensions/window-list/extension.js | 90 +++++++++++++++++++++++++--
extensions/window-list/stylesheet.css | 9 +++
2 files changed, 95 insertions(+), 4 deletions(-)
diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js
index bb9ca80f..477ed8fe 100644
--- a/extensions/window-list/extension.js
+++ b/extensions/window-list/extension.js
@@ -160,23 +160,30 @@ const TitleWidget = GObject.registerClass({
GObject.ParamFlags.READWRITE,
false),
},
-}, class TitleWidget extends St.BoxLayout {
+}, class TitleWidget extends St.Widget {
_init() {
super._init({
+ layout_manager: new Clutter.BinLayout(),
+ x_expand: true,
+ y_expand: true,
+ });
+
+ const hbox = new St.BoxLayout({
style_class: 'window-button-box',
x_expand: true,
y_expand: true,
});
+ this.add_child(hbox);
this._icon = new St.Bin({
style_class: 'window-button-icon',
});
- this.add_child(this._icon);
+ hbox.add_child(this._icon);
this._label = new St.Label({
y_align: Clutter.ActorAlign.CENTER,
});
- this.add_child(this._label);
+ hbox.add_child(this._label);
this.label_actor = this._label;
this.bind_property('abstract-label',
@@ -189,11 +196,28 @@ const TitleWidget = GObject.registerClass({
x_expand: true,
y_expand: true,
});
- this.add_child(this._abstractLabel);
+ hbox.add_child(this._abstractLabel);
this.bind_property('abstract-label',
this._abstractLabel, 'visible',
GObject.BindingFlags.SYNC_CREATE);
+
+ this._attentionIndicator = new St.Widget({
+ style_class: 'window-button-attention-indicator',
+ x_expand: true,
+ y_expand: true,
+ y_align: Clutter.ActorAlign.END,
+ scale_x: 0,
+ });
+ this._attentionIndicator.set_pivot_point(0.5, 0.5);
+ this.add_child(this._attentionIndicator);
+ }
+
+ setNeedsAttention(enable) {
+ this._attentionIndicator.ease({
+ scaleX: enable ? 0.4 : 0,
+ duration: 300,
+ });
}
});
@@ -219,7 +243,12 @@ class WindowTitle extends TitleWidget {
'notify::title', this._updateTitle.bind(this));
this._notifyMinimizedId = this._metaWindow.connect(
'notify::minimized', this._minimizedChanged.bind(this));
+ this._notifyDemandsAttentionId = this._metaWindow.connect(
+ 'notify::demands-attention', this._updateNeedsAttention.bind(this));
+ this._notifyUrgentId = this._metaWindow.connect(
+ 'notify::urgent', this._updateNeedsAttention.bind(this));
this._minimizedChanged();
+ this._updateNeedsAttention();
}
_minimizedChanged() {
@@ -227,6 +256,11 @@ class WindowTitle extends TitleWidget {
this._updateTitle();
}
+ _updateNeedsAttention() {
+ const { urgent, demandsAttention } = this._metaWindow;
+ this.setNeedsAttention(urgent || demandsAttention);
+ }
+
_updateTitle() {
if (!this._metaWindow.title)
return;
@@ -272,6 +306,8 @@ class WindowTitle extends TitleWidget {
this._metaWindow.disconnect(this._notifyMinimizedId);
this._metaWindow.disconnect(this._notifyWmClass);
this._metaWindow.disconnect(this._notifyAppId);
+ this._metaWindow.disconnect(this._notifyDemandsAttentionId);
+ this._metaWindow.disconnect(this._notifyUrgentId);
}
});
@@ -281,6 +317,7 @@ class AppTitle extends TitleWidget {
super._init();
this._app = app;
+ this._windows = new Map();
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
this._label.text = app.get_name();
@@ -291,6 +328,10 @@ class AppTitle extends TitleWidget {
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
});
+ this._windowsChangedId = this._app.connect(
+ 'windows-changed', this._onWindowsChanged.bind(this));
+ this._onWindowsChanged();
+
this.connect('destroy', this._onDestroy.bind(this));
}
@@ -299,6 +340,47 @@ class AppTitle extends TitleWidget {
this._textureCache.disconnect(this._iconThemeChangedId);
this._iconThemeChangedId = 0;
this._textureCache = null;
+
+ for (const [window, ids] of this._windows)
+ ids.forEach(id => window.disconnect(id));
+ this._windows.clear();
+ this._app.disconnect(this._windowsChangedId);
+ }
+
+ _onWindowsChanged() {
+ const windows = this._app.get_windows();
+ const removed = [...this._windows].filter(w => !windows.includes(w));
+ removed.forEach(w => this._untrackWindow(w));
+ windows.forEach(w => this._trackWindow(w));
+ this._updateNeedsAttention();
+ }
+
+ _trackWindow(window) {
+ if (this._windows.has(window))
+ return;
+
+ const signals = [
+ window.connect('notify::urgent',
+ () => this._updateNeedsAttention()),
+ window.connect('notify::demands-attention',
+ () => this._updateNeedsAttention()),
+ ];
+ this._windows.set(window, signals);
+ }
+
+ _untrackWindow(window) {
+ if (!this._windows.has(window))
+ return;
+
+ const ids = this._windows.get(window);
+ ids.forEach(id => window.disconnect(id));
+ this._windows.delete(window);
+ }
+
+ _updateNeedsAttention() {
+ const needsAttention =
+ [...this._windows.keys()].some(w => w.urgent || w.demandsAttention);
+ this.setNeedsAttention(needsAttention);
}
});
diff --git a/extensions/window-list/stylesheet.css b/extensions/window-list/stylesheet.css
index 4c06ebc0..45b42065 100644
--- a/extensions/window-list/stylesheet.css
+++ b/extensions/window-list/stylesheet.css
@@ -103,3 +103,12 @@
border-radius: 99px;
margin: 6px;
}
+
+.window-button-attention-indicator {
+ background-color: rgba(27, 106, 203, 1.0);
+ height: 2px;
+}
+
+.window-button.minimized .window-button-attention-indicator {
+ background-color: rgba(27, 106, 203, 0.6);
+}
--
2.47.1

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@
Name: gnome-shell-extensions Name: gnome-shell-extensions
Version: 40.7 Version: 40.7
Release: 15%{?dist} Release: 29%{?dist}
Summary: Modify and extend GNOME Shell functionality and behavior Summary: Modify and extend GNOME Shell functionality and behavior
License: GPLv2+ License: GPLv2+
@ -43,8 +43,17 @@ Patch020: 0001-window-list-Explicitly-dispose-settings-on-destroy.patch
Patch021: 0001-desktop-icons-Don-t-try-spawn-with-non-existent-work.patch Patch021: 0001-desktop-icons-Don-t-try-spawn-with-non-existent-work.patch
Patch022: 0001-docking-Only-remove-spacer-if-necessary.patch Patch022: 0001-docking-Only-remove-spacer-if-necessary.patch
Patch023: 0001-classification-banner-Hide-from-picks.patch Patch023: 0001-classification-banner-Hide-from-picks.patch
Patch024: prefer-window-icon.patch Patch024: 0001-desktop-icons-Notify-icon-drags.patch
Patch025: more-ws-previews.patch Patch025: prefer-window-icon.patch
Patch026: 0001-desktop-icons-Handle-touch-events.patch
Patch027: more-ws-previews.patch
Patch028: 0001-Add-move-notifications-extension.patch
Patch029: 0001-workspace-indicator-Re-fittsify-workspace-previews.patch
Patch030: window-list-reordering.patch
Patch031: 0001-dash-to-panel-Remove-faulty-version-check.patch
Patch032: window-list-attention-indicator.patch
Patch033: 0001-dash-to-panel-Stop-messing-with-overview-allocation.patch
Patch034: improve-workspace-names.patch
%description %description
GNOME Shell Extensions is a collection of extensions providing additional and GNOME Shell Extensions is a collection of extensions providing additional and
@ -62,6 +71,7 @@ Enabled extensions:
* gesture-inhibitor * gesture-inhibitor
* launch-new-instance * launch-new-instance
* heads-up-display * heads-up-display
* move-notifications
* native-window-placement * native-window-placement
* panel-favorites * panel-favorites
* places-menu * places-menu
@ -200,6 +210,15 @@ This GNOME Shell extension modifies the behavior of clicking in the dash and app
launcher to always launch a new application instance. launcher to always launch a new application instance.
%package -n %{pkg_prefix}-move-notifications
Summary: Move GNOME Shell notifications
License: GPLv2+
Requires: %{pkg_prefix}-common = %{version}-%{release}
%description -n %{pkg_prefix}-move-notifications
This GNOME Shell extension moves notification banners to a different position
%package -n %{pkg_prefix}-heads-up-display %package -n %{pkg_prefix}-heads-up-display
Summary: Display persistent on-screen message Summary: Display persistent on-screen message
Group: User Interface/Desktops Group: User Interface/Desktops
@ -393,6 +412,11 @@ workspaces.
%{_datadir}/gnome-shell/extensions/launch-new-instance*/ %{_datadir}/gnome-shell/extensions/launch-new-instance*/
%files -n %{pkg_prefix}-move-notifications
%{_datadir}/gnome-shell/extensions/move-notifications*/
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.move-notifications.gschema.xml
%files -n %{pkg_prefix}-heads-up-display %files -n %{pkg_prefix}-heads-up-display
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.heads-up-display.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.heads-up-display.gschema.xml
%{_datadir}/gnome-shell/extensions/heads-up-display*/ %{_datadir}/gnome-shell/extensions/heads-up-display*/
@ -449,17 +473,73 @@ workspaces.
%changelog %changelog
* Fri Apr 19 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-15 * Tue Nov 18 2025 Florian Müllner <fmuellner@redhat.com> - 40.7-29
- Fix workspace-indicator cleanups
Resolves: RHEL-129396
* Mon Jun 30 2025 Florian Müllner <fmuellner@redhat.com> - 40.7-28
- Make workspace names more prominent
Resolves: RHEL-96218
* Mon Jun 09 2025 Florian Müllner <fmuellner@redhat.com> - 40.7-27
- Fix window-list styling
Resolves: RHEL-95787
* Mon May 05 2025 Florian Müllner <fmuellner@redhat.com> - 40.7-26
- Stop overriding gnome-shell's overview allocation
Resolves: RHEL-70892
* Wed Jan 08 2025 Florian Müllner <fmuellner@redhat.com> - 40.7-25
- Indicate urgency-hint in window-list
Resolves: RHEL-73146
* Wed Dec 18 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-24
- Change "move-clock" to "move-notifications"
Resolves: RHEL-33429
* Mon Dec 02 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-23
- Fix app grid with dash-to-panel extension
Resolves: RHEL-69665
* Tue Nov 19 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-22
- Fix another bug in window-list reordering backport
Resolves: RHEL-22692
* Fri Nov 15 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-21
- Fix bug in window-list reordering backport
Resolves: RHEL-22692
* Thu Sep 26 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-20
- Allow reordering items in window-list
Resolves: RHEL-22692
* Tue Jul 02 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-19
- Extend workspace buttons to screen edge
Resolves: RHEL-43545
* Tue May 21 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-18
- Add "move-clock" extension
Resolves: RHEL-33429
* Fri Apr 19 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-17
- Fix downstream stylesheets - Fix downstream stylesheets
Resolves: RHEL-31885 Resolves: RHEL-25016
* Thu Apr 18 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-14 * Wed Apr 03 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-16
- Improve workspace previews - Improve workspace previews
Resolves: RHEL-31885 Resolves: RHEL-25016
* Tue Mar 19 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-13 * Tue Mar 19 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-15
- Handle touch events in desktop icons
Resolves: RHEL-22713
* Tue Mar 19 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-14
- Prefer window icons in window list - Prefer window icons in window list
Resolves: RHEL-29659 Resolves: RHEL-24713
* Wed Mar 06 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-13
- Notify on desktop icon drags
Resolves: RHEL-26989
* Fri Feb 02 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-12 * Fri Feb 02 2024 Florian Müllner <fmuellner@redhat.com> - 40.7-12
- Hide classification banners from picks - Hide classification banners from picks