workspace: Only change opacity of minimized windows during transitions
Dragging a window preview in the overview is supposed to change the opacity of the dragged actor. This however fails for minimized windows, because Workspace::allocate() also changes the opacity of those. The allocation gets triggered by removing the window actor from the workspace when starting the drag. Avoid this by only changing the opacity during the overview transitions. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4292 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1847>
This commit is contained in:
parent
118d556991
commit
eee2ccac7a
@ -627,8 +627,9 @@ var WorkspaceLayout = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { ControlsState } = OverviewControls;
|
const { ControlsState } = OverviewControls;
|
||||||
const inSessionTransition =
|
const { currentState, transitioning } =
|
||||||
this._overviewAdjustment.value <= ControlsState.WINDOW_PICKER;
|
this._overviewAdjustment.getStateTransitionParams();
|
||||||
|
const inSessionTransition = currentState <= ControlsState.WINDOW_PICKER;
|
||||||
|
|
||||||
const window = this._sortedWindows[0];
|
const window = this._sortedWindows[0];
|
||||||
|
|
||||||
@ -638,8 +639,8 @@ var WorkspaceLayout = GObject.registerClass({
|
|||||||
const [, bottomOversize] = window.chromeHeights();
|
const [, bottomOversize] = window.chromeHeights();
|
||||||
const [containerX, containerY] = containerBox.get_origin();
|
const [containerX, containerY] = containerBox.get_origin();
|
||||||
|
|
||||||
const extraHeightProgress = this._overviewAdjustment.value -
|
const extraHeightProgress =
|
||||||
OverviewControls.ControlsState.WINDOW_PICKER;
|
currentState - OverviewControls.ControlsState.WINDOW_PICKER;
|
||||||
|
|
||||||
const extraClipHeight = bottomOversize * (1 - extraHeightProgress);
|
const extraClipHeight = bottomOversize * (1 - extraHeightProgress);
|
||||||
|
|
||||||
@ -689,6 +690,7 @@ var WorkspaceLayout = GObject.registerClass({
|
|||||||
workspaceBoxWidth = 0;
|
workspaceBoxWidth = 0;
|
||||||
workspaceBoxHeight = 0;
|
workspaceBoxHeight = 0;
|
||||||
|
|
||||||
|
if (transitioning)
|
||||||
child.opacity = stateAdjustementValue * 255;
|
child.opacity = stateAdjustementValue * 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user