workspaceThumbnails: Pass monitor index to constructor

We'll soon add workspace thumbnails on secondary monitors as well,
so set the monitor explicitly instead of assuming the primary one.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1735>
This commit is contained in:
Florian Müllner 2021-02-26 14:09:15 +01:00 committed by Marge Bot
parent 4eb31e4e18
commit 2731d35723
2 changed files with 13 additions and 10 deletions

View File

@ -305,8 +305,8 @@ class ControlsManager extends St.Widget {
this.dash.showAppsButton); this.dash.showAppsButton);
this._searchController.connect('notify::search-active', this._onSearchChanged.bind(this)); this._searchController.connect('notify::search-active', this._onSearchChanged.bind(this));
this._thumbnailsBox = this._thumbnailsBox = new WorkspaceThumbnail.ThumbnailsBox(
new WorkspaceThumbnail.ThumbnailsBox(this._workspaceAdjustment); this._workspaceAdjustment, Main.layoutManager.primaryIndex);
this._thumbnailsBox.connect('notify::should-show', () => { this._thumbnailsBox.connect('notify::should-show', () => {
this._thumbnailsBox.show(); this._thumbnailsBox.show();
this._thumbnailsBox.ease_property('expand-fraction', this._thumbnailsBox.ease_property('expand-fraction',

View File

@ -258,7 +258,7 @@ var WorkspaceThumbnail = GObject.registerClass({
0, 1, 0), 0, 1, 0),
}, },
}, class WorkspaceThumbnail extends St.Widget { }, class WorkspaceThumbnail extends St.Widget {
_init(metaWorkspace) { _init(metaWorkspace, monitorIndex) {
super._init({ super._init({
clip_to_allocation: true, clip_to_allocation: true,
style_class: 'workspace-thumbnail', style_class: 'workspace-thumbnail',
@ -267,7 +267,7 @@ var WorkspaceThumbnail = GObject.registerClass({
this._delegate = this; this._delegate = this;
this.metaWorkspace = metaWorkspace; this.metaWorkspace = metaWorkspace;
this.monitorIndex = Main.layoutManager.primaryIndex; this.monitorIndex = monitorIndex;
this._removed = false; this._removed = false;
@ -623,7 +623,7 @@ var ThumbnailsBox = GObject.registerClass({
true), true),
}, },
}, class ThumbnailsBox extends St.Widget { }, class ThumbnailsBox extends St.Widget {
_init(scrollAdjustment) { _init(scrollAdjustment, monitorIndex) {
super._init({ super._init({
style_class: 'workspace-thumbnails', style_class: 'workspace-thumbnails',
reactive: true, reactive: true,
@ -641,6 +641,8 @@ var ThumbnailsBox = GObject.registerClass({
this._indicator = indicator; this._indicator = indicator;
this.add_actor(indicator); this.add_actor(indicator);
this._monitorIndex = monitorIndex;
this._dropWorkspace = -1; this._dropWorkspace = -1;
this._dropPlaceholderPos = -1; this._dropPlaceholderPos = -1;
this._dropPlaceholder = new St.Bin({ style_class: 'placeholder' }); this._dropPlaceholder = new St.Bin({ style_class: 'placeholder' });
@ -1069,7 +1071,7 @@ var ThumbnailsBox = GObject.registerClass({
for (let k = start; k < start + count; k++) { for (let k = start; k < start + count; k++) {
let metaWorkspace = workspaceManager.get_workspace_by_index(k); let metaWorkspace = workspaceManager.get_workspace_by_index(k);
let thumbnail = new WorkspaceThumbnail(metaWorkspace); let thumbnail = new WorkspaceThumbnail(metaWorkspace, this._monitorIndex);
thumbnail.setPorthole(this._porthole.x, this._porthole.y, thumbnail.setPorthole(this._porthole.x, this._porthole.y,
this._porthole.width, this._porthole.height); this._porthole.width, this._porthole.height);
this._thumbnails.push(thumbnail); this._thumbnails.push(thumbnail);
@ -1297,11 +1299,12 @@ var ThumbnailsBox = GObject.registerClass({
} }
_updatePorthole() { _updatePorthole() {
if (!Main.layoutManager.primaryMonitor) { if (!Main.layoutManager.monitors[this._monitorIndex]) {
this._porthole = { width: global.stage.width, height: global.stage.height, const { x, y, width, height } = global.stage;
x: global.stage.x, y: global.stage.y }; this._porthole = { x, y, width, height };
} else { } else {
this._porthole = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex); this._porthole =
Main.layoutManager.getWorkAreaForMonitor(this._monitorIndex);
} }
this.queue_relayout(); this.queue_relayout();