appDisplay: Add :gesture-modes property
Both the main app grid and folders got a swipe tracker, which is active in both OVERVIEW and POPUP mode. The result is that two trackers fight over the same events, and everybody loses. Address this by adding a :gesture-modes property that determines the allowed modes for the associated swipe tracker. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4256 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1844>
This commit is contained in:
parent
6fc93b78bc
commit
803b944ffd
@ -131,6 +131,12 @@ function _findBestFolderName(apps) {
|
||||
|
||||
var BaseAppView = GObject.registerClass({
|
||||
GTypeFlags: GObject.TypeFlags.ABSTRACT,
|
||||
Properties: {
|
||||
'gesture-modes': GObject.ParamSpec.flags(
|
||||
'gesture-modes', 'gesture-modes', 'gesture-modes',
|
||||
GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT_ONLY,
|
||||
Shell.ActionMode, Shell.ActionMode.OVERVIEW),
|
||||
},
|
||||
Signals: {
|
||||
'view-loaded': {},
|
||||
},
|
||||
@ -281,8 +287,7 @@ var BaseAppView = GObject.registerClass({
|
||||
|
||||
// Swipe
|
||||
this._swipeTracker = new SwipeTracker.SwipeTracker(this._scrollView,
|
||||
Clutter.Orientation.HORIZONTAL,
|
||||
Shell.ActionMode.OVERVIEW | Shell.ActionMode.POPUP);
|
||||
Clutter.Orientation.HORIZONTAL, this.gestureModes);
|
||||
this._swipeTracker.orientation = Clutter.Orientation.HORIZONTAL;
|
||||
this._swipeTracker.connect('begin', this._swipeBegin.bind(this));
|
||||
this._swipeTracker.connect('update', this._swipeUpdate.bind(this));
|
||||
@ -2196,6 +2201,7 @@ class FolderView extends BaseAppView {
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
gesture_modes: Shell.ActionMode.POPUP,
|
||||
});
|
||||
|
||||
// If it not expand, the parent doesn't take into account its preferred_width when allocating
|
||||
|
Loading…
Reference in New Issue
Block a user