Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2073)

Unified Diff: chrome/browser/resources/login/user_pod_row.js

Issue 292233002: Disable VK overscroll for login/out-of-box. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/login/user_pod_row.js
diff --git a/chrome/browser/resources/login/user_pod_row.js b/chrome/browser/resources/login/user_pod_row.js
index b6fbe379c1c7c0bde11dcca114e136ba8f6b1c2e..57bb80fb463d58514ca7086e27d6c2bc0b6b16f8 100644
--- a/chrome/browser/resources/login/user_pod_row.js
+++ b/chrome/browser/resources/login/user_pod_row.js
@@ -47,6 +47,15 @@ cr.define('login', function() {
var POD_ROW_PADDING = 10;
/**
+ * Constants that define 'scrolling stops' when user pod rows are scrolled
+ * into view with virtual keyboard shown. First index is total number of rows,
+ * second index is focused pod row. See scrollFocusedPodIntoView().
+ * @type Array.<Array.<number>>
+ * @const
+ */
+ var USER_POD_ROW_SCROLL_STOPS = [[0.5], [0.25, 0.75], [0, 0.5, 1]];
dzhioev (left Google) 2014/05/21 17:30:32 We can have more than 3 rows of pods. What happens
Nikita (slow) 2014/05/22 15:11:50 Added dynamic calculation.
+
+ /**
* Whether to preselect the first pod automatically on login screen.
* @type {boolean}
* @const
@@ -156,6 +165,12 @@ cr.define('login', function() {
UserPod.prototype = {
__proto__: HTMLDivElement.prototype,
+ // Column at which user pod is located.
+ column_: -1,
+
+ // Row at which user pod is located.
+ row_: -1,
+
/** @override */
decorate: function() {
this.tabIndex = UserPodTabOrder.POD_INPUT;
@@ -266,6 +281,28 @@ cr.define('login', function() {
},
/**
+ * User pod column.
+ * @type {?number}
+ */
+ set column(column) {
+ this.column_ = column;
+ },
+ get columns() {
+ return this.column_;
+ },
+
+ /**
+ * User pod row.
+ * @type {?number}
+ */
+ set row(row) {
+ this.row_ = row;
+ },
+ get row() {
+ return this.row_;
+ },
+
+ /**
* Gets signed in indicator element.
* @type {!HTMLDivElement}
*/
@@ -1374,6 +1411,14 @@ cr.define('login', function() {
},
/**
+ * Returns focused user pod.
+ * @type {Object}
+ */
+ get focusedPod() {
dzhioev (left Google) 2014/05/21 17:30:32 Why did you add this getter? As I can see, you onl
Nikita (slow) 2014/05/22 15:11:50 Right, not needed in latest impl, removed.
+ return this.focusedPod_;
+ },
+
+ /**
* Returns all the pods in this pod row.
* @type {NodeList}
*/
@@ -1556,6 +1601,19 @@ cr.define('login', function() {
},
/**
+ * Scrolls focused user pod into view.
+ */
+ scrollFocusedPodIntoView: function() {
+ if (!this.focusedPod ||
+ this.focusedPod.column < 0 || this.focusedPod.row < 0) {
+ return;
+ }
+
+ $('scroll-container').scrollTop = $('scroll-container').offsetHeight *
+ USER_POD_ROW_SCROLL_STOPS[this.rows - 1][this.focusedPod.row];
+ },
+
+ /**
* Rebuilds pod row using users_ and apps_ that were previously set or
* updated.
*/
@@ -1726,6 +1784,9 @@ cr.define('login', function() {
var layout = this.calculateLayout_();
if (layout.columns != this.columns || layout.rows != this.rows)
this.placePods_();
+
+ if (Oobe.getInstance().virtualKeyboardShown)
+ this.scrollFocusedPodIntoView();
dzhioev (left Google) 2014/05/21 17:30:32 Did you try to make the same in |focusPod|, where
Nikita (slow) 2014/05/22 15:11:50 Since virtual keyboard shows up after some delay f
},
/**
@@ -1804,8 +1865,8 @@ cr.define('login', function() {
return;
}
pod.hidden = false;
- var column = index % columns;
- var row = Math.floor(index / columns);
+ var column = pod.column = index % columns;
+ var row = pod.row = Math.floor(index / columns);
pod.left = POD_ROW_PADDING + column * (width + margin);
pod.top = POD_ROW_PADDING + row * height;
});
@@ -1821,7 +1882,7 @@ cr.define('login', function() {
this.setAttribute('ncolumns', columns);
},
get columns() {
- return this.getAttribute('ncolumns');
+ return parseInt(this.getAttribute('ncolumns'));
},
/**
@@ -1833,7 +1894,7 @@ cr.define('login', function() {
this.setAttribute('nrows', rows);
},
get rows() {
- return this.getAttribute('nrows');
+ return parseInt(this.getAttribute('nrows'));
},
/**

Powered by Google App Engine
This is Rietveld 408576698