diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 300c7e75a..6ff8cb142 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -48,18 +48,16 @@ const AlphabeticalView = new Lang.Class({ style_class: 'vfade' }); this.actor.add_actor(box); this.actor.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC); - this.actor.connect('notify::mapped', Lang.bind(this, - function() { - if (!this.actor.mapped) - return; + let action = new Clutter.PanAction({ interpolate: true }); + action.connect('pan', Lang.bind(this, this._onPan)); + this.actor.add_action(action); + }, - let adjustment = this.actor.vscroll.adjustment; - let direction = Overview.SwipeScrollDirection.VERTICAL; - Main.overview.setScrollAdjustment(adjustment, direction); - - // Reset scroll on mapping - adjustment.value = 0; - })); + _onPan: function(action) { + let [dist, dx, dy] = action.get_motion_delta(0); + let adjustment = this.actor.vscroll.adjustment; + adjustment.value -= (dy / this.actor.height) * adjustment.page_size; + return false; }, removeAll: function() { diff --git a/js/ui/searchDisplay.js b/js/ui/searchDisplay.js index 5a914bd99..7460310c5 100644 --- a/js/ui/searchDisplay.js +++ b/js/ui/searchDisplay.js @@ -194,15 +194,9 @@ const SearchResults = new Lang.Class({ expand: true, x_align: St.Align.START, y_align: St.Align.START }); - this.actor.connect('notify::mapped', Lang.bind(this, - function() { - if (!this.actor.mapped) - return; - - let adjustment = scrollView.vscroll.adjustment; - let direction = Overview.SwipeScrollDirection.VERTICAL; - Main.overview.setScrollAdjustment(adjustment, direction); - })); + let action = new Clutter.PanAction({ interpolate: true }); + action.connect('pan', Lang.bind(this, this._onPan)); + this.actor.add_action(action); this._statusText = new St.Label({ style_class: 'search-statustext' }); this._statusBin = new St.Bin({ x_align: St.Align.MIDDLE, @@ -219,6 +213,13 @@ const SearchResults = new Lang.Class({ this._defaultResult = null; }, + _onPan: function(action) { + let [dist, dx, dy] = action.get_motion_delta(0); + let adjustment = this.actor.vscroll.adjustment; + adjustment.value -= (dy / this.actor.height) * adjustment.page_size; + return false; + }, + createProviderMeta: function(provider) { let providerBox = new St.BoxLayout({ style_class: 'search-section', vertical: true });