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

Side by Side Diff: chrome/browser/resources/shared/js/cr/ui/list.js

Issue 9318012: ui/list.js: prevent from position calculation with wrong position. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // require: array_data_model.js 5 // require: array_data_model.js
6 // require: list_selection_model.js 6 // require: list_selection_model.js
7 // require: list_selection_controller.js 7 // require: list_selection_controller.js
8 // require: list_item.js 8 // require: list_item.js
9 9
10 /** 10 /**
(...skipping 1030 matching lines...) Expand 10 before | Expand all | Expand 10 after
1041 var dataModel = this.dataModel; 1041 var dataModel = this.dataModel;
1042 if (!dataModel) { 1042 if (!dataModel) {
1043 this.cachedItems_ = {}; 1043 this.cachedItems_ = {};
1044 this.firstIndex_ = 0; 1044 this.firstIndex_ = 0;
1045 this.lastIndex_ = 0; 1045 this.lastIndex_ = 0;
1046 this.remainingSpace_ = true; 1046 this.remainingSpace_ = true;
1047 this.mergeItems(0, 0, {}, {}); 1047 this.mergeItems(0, 0, {}, {});
1048 return; 1048 return;
1049 } 1049 }
1050 1050
1051 // Save the previous positions before any manipulation of elements.
1052 var scrollTop = this.scrollTop;
1053 var clientHeight = this.clientHeight;
1054
1051 // Store all the item sizes into the cache in advance, to prevent 1055 // Store all the item sizes into the cache in advance, to prevent
1052 // interleave measuring with mutating dom. 1056 // interleave measuring with mutating dom.
1053 if (!this.fixedHeight_) 1057 if (!this.fixedHeight_)
1054 this.ensureAllItemSizesInCache(); 1058 this.ensureAllItemSizesInCache();
1055 1059
1056 // We cache the list items since creating the DOM nodes is the most 1060 // We cache the list items since creating the DOM nodes is the most
1057 // expensive part of redrawing. 1061 // expensive part of redrawing.
1058 var cachedItems = this.cachedItems_ || {}; 1062 var cachedItems = this.cachedItems_ || {};
1059 var newCachedItems = {}; 1063 var newCachedItems = {};
1060 1064
1061 var autoExpands = this.autoExpands_; 1065 var autoExpands = this.autoExpands_;
1062 var scrollTop = this.scrollTop;
1063 var clientHeight = this.clientHeight;
1064 1066
1065 var itemsInViewPort = this.getItemsInViewPort(scrollTop, clientHeight); 1067 var itemsInViewPort = this.getItemsInViewPort(scrollTop, clientHeight);
1066 // Draws the hidden rows just above/below the viewport to prevent 1068 // Draws the hidden rows just above/below the viewport to prevent
1067 // flashing in scroll. 1069 // flashing in scroll.
1068 var firstIndex = Math.max(0, itemsInViewPort.first - 1); 1070 var firstIndex = Math.max(0, itemsInViewPort.first - 1);
1069 var lastIndex = Math.min(itemsInViewPort.last + 1, dataModel.length); 1071 var lastIndex = Math.min(itemsInViewPort.last + 1, dataModel.length);
1070 1072
1071 var beforeFillerHeight = 1073 var beforeFillerHeight =
1072 this.autoExpands ? 0 : this.getItemTop(firstIndex); 1074 this.autoExpands ? 0 : this.getItemTop(firstIndex);
1073 var afterFillerHeight = 1075 var afterFillerHeight =
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1174 * because list items can contain controls that can be focused, and for some 1176 * because list items can contain controls that can be focused, and for some
1175 * purposes (e.g., styling), the list can still be conceptually focused at 1177 * purposes (e.g., styling), the list can still be conceptually focused at
1176 * that point even though it doesn't actually have the page focus. 1178 * that point even though it doesn't actually have the page focus.
1177 */ 1179 */
1178 cr.defineProperty(List, 'hasElementFocus', cr.PropertyKind.BOOL_ATTR); 1180 cr.defineProperty(List, 'hasElementFocus', cr.PropertyKind.BOOL_ATTR);
1179 1181
1180 return { 1182 return {
1181 List: List 1183 List: List
1182 } 1184 }
1183 }); 1185 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698