appDisplay: Use icon grid size as distance passed to SwipeTracker

The swipeTracker wants the distance between two pages passed to it in
confirmSwipe(). In case of the app grid, the correct distance is not the
size of the scrollView (which has the width of the whole screen), but
instead the allocation size of the iconGrid (which is the actual size
of a page in the grid).

So pass the allocation size of the iconGrid to the swipeTracker, this
makes sure the pages move perfectly in sync with the pointer when
dragging using the mouse or touchscreen.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2275>
This commit is contained in:
Jonas Dreßler 2022-04-10 00:48:39 +02:00 committed by Marge Bot
parent d546cb0139
commit 851a1e30fa

View File

@ -523,7 +523,7 @@ var BaseAppView = GObject.registerClass({
const progress = adjustment.value / adjustment.page_size; const progress = adjustment.value / adjustment.page_size;
const points = Array.from({ length: this._grid.nPages }, (v, i) => i); const points = Array.from({ length: this._grid.nPages }, (v, i) => i);
const size = tracker.orientation === Clutter.Orientation.VERTICAL const size = tracker.orientation === Clutter.Orientation.VERTICAL
? this._scrollView.height : this._scrollView.width; ? this._grid.allocation.get_height() : this._grid.allocation.get_width();
tracker.confirmSwipe(size, points, progress, Math.round(progress)); tracker.confirmSwipe(size, points, progress, Math.round(progress));
} }