workspace: Center-align window previews if there's only a single row
Instead of always aligning window previews vertically at the bottom of their row, only do that if we have multiple rows. If there's only a single row of windows, align every window vertically centered. This is a very small step towards the new layout for window previews in the overview, but since the release of 40 is getting nearer and nearer, changing more is not feasible anymore. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3634 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1737>
This commit is contained in:
parent
9b9be4a1a5
commit
31d7770eeb
@ -343,7 +343,10 @@ var UnalignedLayoutStrategy = class extends LayoutStrategy {
|
||||
compensation /= 2;
|
||||
|
||||
for (let i = 0; i < rows.length; i++) {
|
||||
let row = rows[i];
|
||||
const row = rows[i];
|
||||
const rowY = row.y + compensation;
|
||||
const rowHeight = row.height * row.additionalScale;
|
||||
|
||||
let x = row.x;
|
||||
for (let j = 0; j < row.windows.length; j++) {
|
||||
let window = row.windows[j];
|
||||
@ -357,7 +360,14 @@ var UnalignedLayoutStrategy = class extends LayoutStrategy {
|
||||
const cloneHeight = window.boundingBox.height * s;
|
||||
|
||||
let cloneX = x + (cellWidth - cloneWidth) / 2;
|
||||
let cloneY = row.y + row.height * row.additionalScale - cellHeight + compensation;
|
||||
let cloneY;
|
||||
|
||||
// If there's only one row, align windows vertically centered inside the row
|
||||
if (rows.length === 1)
|
||||
cloneY = rowY + (rowHeight - cloneHeight) / 2;
|
||||
// If there are multiple rows, align windows to the bottom edge of the row
|
||||
else
|
||||
cloneY = rowY + rowHeight - cellHeight;
|
||||
|
||||
// Align with the pixel grid to prevent blurry windows at scale = 1
|
||||
cloneX = Math.floor(cloneX);
|
||||
|
Loading…
Reference in New Issue
Block a user