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

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: rebase, keyboard override value: convert to bool 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 bd6d78c2371074e2e792d00571a4f900c087f031..63cd9cf74b6a79275d278a0e5d13240bd758c74f 100644
--- a/chrome/browser/resources/login/user_pod_row.js
+++ b/chrome/browser/resources/login/user_pod_row.js
@@ -47,6 +47,13 @@ cr.define('login', function() {
var POD_ROW_PADDING = 10;
/**
+ * Minimal padding between user pod and virtual keyboard.
+ * @type {number}
+ * @const
+ */
+ var USER_POD_KEYBOARD_MIN_PADDING = 20;
+
+ /**
* Whether to preselect the first pod automatically on login screen.
* @type {boolean}
* @const
@@ -1560,6 +1567,29 @@ cr.define('login', function() {
},
/**
+ * Scrolls focused user pod into view.
+ */
+ scrollFocusedPodIntoView: function() {
+ var pod = this.focusedPod_;
+ if (!pod)
+ return;
+
+ // First check whether focused pod is already fully visible.
+ var visibleArea = $('scroll-container');
+ var scrollTop = visibleArea.scrollTop;
+ var clientHeight = visibleArea.clientHeight;
+ var podTop = $('oobe').offsetTop + pod.offsetTop;
+ var padding = USER_POD_KEYBOARD_MIN_PADDING;
+ if (podTop + pod.height + padding <= scrollTop + clientHeight &&
+ podTop - padding >= scrollTop) {
+ return;
+ }
+
+ // Scroll so that user pod is as centered as possible.
+ visibleArea.scrollTop = podTop - (clientHeight - pod.offsetHeight) / 2;
+ },
+
+ /**
* Rebuilds pod row using users_ and apps_ that were previously set or
* updated.
*/
@@ -1734,6 +1764,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();
},
/**
@@ -1829,7 +1862,7 @@ cr.define('login', function() {
this.setAttribute('ncolumns', columns);
},
get columns() {
- return this.getAttribute('ncolumns');
+ return parseInt(this.getAttribute('ncolumns'));
},
/**
@@ -1841,7 +1874,7 @@ cr.define('login', function() {
this.setAttribute('nrows', rows);
},
get rows() {
- return this.getAttribute('nrows');
+ return parseInt(this.getAttribute('nrows'));
},
/**
@@ -1907,6 +1940,9 @@ cr.define('login', function() {
chrome.send('focusPod', [podToFocus.user.username]);
this.firstShown_ = false;
this.lastFocusedPod_ = podToFocus;
+
+ if (Oobe.getInstance().virtualKeyboardShown)
+ this.scrollFocusedPodIntoView();
}
this.insideFocusPod_ = false;
this.keyboardActivated_ = false;
« no previous file with comments | « chrome/browser/resources/login/display_manager.js ('k') | chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698