windowManager: Limit super-scroll handling to normal mode

The overview has it's own workspace scroll handling, and we don't want
to switch workspaces in other modes. Limiting the scroll-event handler
to NORMAL mode matches the swipe tracker used by WorkspaceAnimation,
and allows for other uses of scroll events (like scrolling in the
alt-tab popup).

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3840

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1746>
This commit is contained in:
Florian Müllner 2021-03-08 19:59:23 +01:00 committed by Marge Bot
parent 3669faaa47
commit fb1ab4f20b

View File

@ -864,6 +864,10 @@ var WindowManager = class {
this._switchToApplication.bind(this));
global.stage.connect('scroll-event', (stage, event) => {
const allowedModes = Shell.ActionMode.NORMAL;
if ((allowedModes & Main.actionMode) === 0)
return Clutter.EVENT_PROPAGATE;
if (this._workspaceAnimation.canHandleScrollEvent(event))
return Clutter.EVENT_PROPAGATE;