[gnome-shell] searchDisplay, appDisplay: Use ClutterPanAction for re-swipe scrolling
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] searchDisplay, appDisplay: Use ClutterPanAction for re-swipe scrolling
- Date: Fri, 30 Nov 2012 23:04:03 +0000 (UTC)
commit 5fc16bb05b841c6574fe91db34670650bb92e9bc
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Sun Nov 25 23:33:44 2012 -0500
searchDisplay, appDisplay: Use ClutterPanAction for re-swipe scrolling
The sooner we can kill off the custom overview swipe scroll code, the
better.
https://bugzilla.gnome.org/show_bug.cgi?id=689062
js/ui/appDisplay.js | 20 +++++++++-----------
js/ui/searchDisplay.js | 41 +++++++++++++++++++++--------------------
2 files changed, 30 insertions(+), 31 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 851a511..a80b684 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 adjustment = this.actor.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);
+ },
- // 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 5a914bd..1259966 100644
--- a/js/ui/searchDisplay.js
+++ b/js/ui/searchDisplay.js
@@ -183,26 +183,20 @@ const SearchResults = new Lang.Class({
this._content = new St.BoxLayout({ name: 'searchResultsContent',
vertical: true });
- let scrollView = new St.ScrollView({ x_fill: true,
- y_fill: false,
- style_class: 'vfade' });
- scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
- scrollView.add_actor(this._content);
-
- this.actor.add(scrollView, { x_fill: true,
- y_fill: true,
- 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);
- }));
+ this._scrollView = new St.ScrollView({ x_fill: true,
+ y_fill: false,
+ style_class: 'vfade' });
+ this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
+ this._scrollView.add_actor(this._content);
+ let action = new Clutter.PanAction({ interpolate: true });
+ action.connect('pan', Lang.bind(this, this._onPan));
+ this._scrollView.add_action(action);
+
+ this.actor.add(this._scrollView, { x_fill: true,
+ y_fill: true,
+ expand: true,
+ x_align: St.Align.START,
+ y_align: St.Align.START });
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._scrollView.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 });
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]