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

Side by Side 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, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview User pod row implementation. 6 * @fileoverview User pod row implementation.
7 */ 7 */
8 8
9 cr.define('login', function() { 9 cr.define('login', function() {
10 /** 10 /**
(...skipping 29 matching lines...) Expand all
40 * Variables used for pod placement processing. Width and height should be 40 * Variables used for pod placement processing. Width and height should be
41 * synced with computed CSS sizes of pods. 41 * synced with computed CSS sizes of pods.
42 */ 42 */
43 var POD_WIDTH = 180; 43 var POD_WIDTH = 180;
44 var PUBLIC_EXPANDED_WIDTH = 420; 44 var PUBLIC_EXPANDED_WIDTH = 420;
45 var CROS_POD_HEIGHT = 213; 45 var CROS_POD_HEIGHT = 213;
46 var DESKTOP_POD_HEIGHT = 216; 46 var DESKTOP_POD_HEIGHT = 216;
47 var POD_ROW_PADDING = 10; 47 var POD_ROW_PADDING = 10;
48 48
49 /** 49 /**
50 * Minimal padding between user pod and virtual keyboard.
51 * @type {number}
52 * @const
53 */
54 var USER_POD_KEYBOARD_MIN_PADDING = 20;
55
56 /**
50 * Whether to preselect the first pod automatically on login screen. 57 * Whether to preselect the first pod automatically on login screen.
51 * @type {boolean} 58 * @type {boolean}
52 * @const 59 * @const
53 */ 60 */
54 var PRESELECT_FIRST_POD = true; 61 var PRESELECT_FIRST_POD = true;
55 62
56 /** 63 /**
57 * Maximum time for which the pod row remains hidden until all user images 64 * Maximum time for which the pod row remains hidden until all user images
58 * have been loaded. 65 * have been loaded.
59 * @type {number} 66 * @type {number}
(...skipping 1493 matching lines...) Expand 10 before | Expand all | Expand 10 after
1553 * @param {boolean} animated Whether to use init animation. 1560 * @param {boolean} animated Whether to use init animation.
1554 */ 1561 */
1555 loadPods: function(users, animated) { 1562 loadPods: function(users, animated) {
1556 this.users_ = users; 1563 this.users_ = users;
1557 this.userAddIsAnimated_ = animated; 1564 this.userAddIsAnimated_ = animated;
1558 1565
1559 this.rebuildPods(); 1566 this.rebuildPods();
1560 }, 1567 },
1561 1568
1562 /** 1569 /**
1570 * Scrolls focused user pod into view.
1571 */
1572 scrollFocusedPodIntoView: function() {
1573 var pod = this.focusedPod_;
1574 if (!pod)
1575 return;
1576
1577 // First check whether focused pod is already fully visible.
1578 var visibleArea = $('scroll-container');
1579 var scrollTop = visibleArea.scrollTop;
1580 var clientHeight = visibleArea.clientHeight;
1581 var podTop = $('oobe').offsetTop + pod.offsetTop;
1582 var padding = USER_POD_KEYBOARD_MIN_PADDING;
1583 if (podTop + pod.height + padding <= scrollTop + clientHeight &&
1584 podTop - padding >= scrollTop) {
1585 return;
1586 }
1587
1588 // Scroll so that user pod is as centered as possible.
1589 visibleArea.scrollTop = podTop - (clientHeight - pod.offsetHeight) / 2;
1590 },
1591
1592 /**
1563 * Rebuilds pod row using users_ and apps_ that were previously set or 1593 * Rebuilds pod row using users_ and apps_ that were previously set or
1564 * updated. 1594 * updated.
1565 */ 1595 */
1566 rebuildPods: function() { 1596 rebuildPods: function() {
1567 var emptyPodRow = this.pods.length == 0; 1597 var emptyPodRow = this.pods.length == 0;
1568 1598
1569 // Clear existing pods. 1599 // Clear existing pods.
1570 this.innerHTML = ''; 1600 this.innerHTML = '';
1571 this.focusedPod_ = undefined; 1601 this.focusedPod_ = undefined;
1572 this.activatedPod_ = undefined; 1602 this.activatedPod_ = undefined;
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1727 BUBBLE_PADDING); 1757 BUBBLE_PADDING);
1728 }, 1758 },
1729 1759
1730 /** 1760 /**
1731 * Called when window was resized. 1761 * Called when window was resized.
1732 */ 1762 */
1733 onWindowResize: function() { 1763 onWindowResize: function() {
1734 var layout = this.calculateLayout_(); 1764 var layout = this.calculateLayout_();
1735 if (layout.columns != this.columns || layout.rows != this.rows) 1765 if (layout.columns != this.columns || layout.rows != this.rows)
1736 this.placePods_(); 1766 this.placePods_();
1767
1768 if (Oobe.getInstance().virtualKeyboardShown)
1769 this.scrollFocusedPodIntoView();
1737 }, 1770 },
1738 1771
1739 /** 1772 /**
1740 * Returns width of podrow having |columns| number of columns. 1773 * Returns width of podrow having |columns| number of columns.
1741 * @private 1774 * @private
1742 */ 1775 */
1743 columnsToWidth_: function(columns) { 1776 columnsToWidth_: function(columns) {
1744 var margin = MARGIN_BY_COLUMNS[columns]; 1777 var margin = MARGIN_BY_COLUMNS[columns];
1745 return 2 * POD_ROW_PADDING + columns * 1778 return 2 * POD_ROW_PADDING + columns *
1746 this.userPodWidth_ + (columns - 1) * margin; 1779 this.userPodWidth_ + (columns - 1) * margin;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1822 1855
1823 /** 1856 /**
1824 * Number of columns. 1857 * Number of columns.
1825 * @type {?number} 1858 * @type {?number}
1826 */ 1859 */
1827 set columns(columns) { 1860 set columns(columns) {
1828 // Cannot use 'columns' here. 1861 // Cannot use 'columns' here.
1829 this.setAttribute('ncolumns', columns); 1862 this.setAttribute('ncolumns', columns);
1830 }, 1863 },
1831 get columns() { 1864 get columns() {
1832 return this.getAttribute('ncolumns'); 1865 return parseInt(this.getAttribute('ncolumns'));
1833 }, 1866 },
1834 1867
1835 /** 1868 /**
1836 * Number of rows. 1869 * Number of rows.
1837 * @type {?number} 1870 * @type {?number}
1838 */ 1871 */
1839 set rows(rows) { 1872 set rows(rows) {
1840 // Cannot use 'rows' here. 1873 // Cannot use 'rows' here.
1841 this.setAttribute('nrows', rows); 1874 this.setAttribute('nrows', rows);
1842 }, 1875 },
1843 get rows() { 1876 get rows() {
1844 return this.getAttribute('nrows'); 1877 return parseInt(this.getAttribute('nrows'));
1845 }, 1878 },
1846 1879
1847 /** 1880 /**
1848 * Whether the pod is currently focused. 1881 * Whether the pod is currently focused.
1849 * @param {UserPod} pod Pod to check for focus. 1882 * @param {UserPod} pod Pod to check for focus.
1850 * @return {boolean} Pod focus status. 1883 * @return {boolean} Pod focus status.
1851 */ 1884 */
1852 isFocused: function(pod) { 1885 isFocused: function(pod) {
1853 return this.focusedPod_ == pod; 1886 return this.focusedPod_ == pod;
1854 }, 1887 },
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1900 this.focusedPod_ = podToFocus; 1933 this.focusedPod_ = podToFocus;
1901 if (podToFocus) { 1934 if (podToFocus) {
1902 podToFocus.classList.remove('faded'); 1935 podToFocus.classList.remove('faded');
1903 podToFocus.classList.add('focused'); 1936 podToFocus.classList.add('focused');
1904 podToFocus.reset(true); // Reset and give focus. 1937 podToFocus.reset(true); // Reset and give focus.
1905 // focusPod() automatically loads wallpaper 1938 // focusPod() automatically loads wallpaper
1906 if (!podToFocus.user.isApp) 1939 if (!podToFocus.user.isApp)
1907 chrome.send('focusPod', [podToFocus.user.username]); 1940 chrome.send('focusPod', [podToFocus.user.username]);
1908 this.firstShown_ = false; 1941 this.firstShown_ = false;
1909 this.lastFocusedPod_ = podToFocus; 1942 this.lastFocusedPod_ = podToFocus;
1943
1944 if (Oobe.getInstance().virtualKeyboardShown)
1945 this.scrollFocusedPodIntoView();
1910 } 1946 }
1911 this.insideFocusPod_ = false; 1947 this.insideFocusPod_ = false;
1912 this.keyboardActivated_ = false; 1948 this.keyboardActivated_ = false;
1913 }, 1949 },
1914 1950
1915 /** 1951 /**
1916 * Focuses a given user pod by index or clear focus when given null. 1952 * Focuses a given user pod by index or clear focus when given null.
1917 * @param {int=} podToFocus index of User pod to focus. 1953 * @param {int=} podToFocus index of User pod to focus.
1918 * @param {boolean=} opt_force If true, forces focus update even when 1954 * @param {boolean=} opt_force If true, forces focus update even when
1919 * podToFocus is already focused. 1955 * podToFocus is already focused.
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
2238 if (this.podsWithPendingImages_.length == 0) { 2274 if (this.podsWithPendingImages_.length == 0) {
2239 this.classList.remove('images-loading'); 2275 this.classList.remove('images-loading');
2240 } 2276 }
2241 } 2277 }
2242 }; 2278 };
2243 2279
2244 return { 2280 return {
2245 PodRow: PodRow 2281 PodRow: PodRow
2246 }; 2282 };
2247 }); 2283 });
OLDNEW
« 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