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

Side by Side Diff: chrome/browser/resources/ntp4/tile_page.js

Issue 7685049: ntp4: app install improvements (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rbyers suggestions Created 9 years, 3 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 | « chrome/browser/resources/ntp4/new_tab.js ('k') | chrome/browser/ui/browser.cc » ('j') | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 cr.define('ntp4', function() { 5 cr.define('ntp4', function() {
6 'use strict'; 6 'use strict';
7 7
8 // We can't pass the currently dragging tile via dataTransfer because of 8 // We can't pass the currently dragging tile via dataTransfer because of
9 // http://crbug.com/31037 9 // http://crbug.com/31037
10 var currentlyDraggingTile = null; 10 var currentlyDraggingTile = null;
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 setCurrentlyDraggingTile(null); 154 setCurrentlyDraggingTile(null);
155 155
156 // tilePage will be null if we've already been removed. 156 // tilePage will be null if we've already been removed.
157 if (this.tilePage) 157 if (this.tilePage)
158 this.tilePage.positionTile_(this.index); 158 this.tilePage.positionTile_(this.index);
159 159
160 // Take an appropriate action with the drag clone. 160 // Take an appropriate action with the drag clone.
161 if (this.landedOnTrash) { 161 if (this.landedOnTrash) {
162 this.dragClone.classList.add('deleting'); 162 this.dragClone.classList.add('deleting');
163 } else if (this.tilePage) { 163 } else if (this.tilePage) {
164 if (this.tilePage.selected) { 164 if (this.tilePage.selected && e.dataTransfer.dropEffect != 'copy') {
165 // The tile's contents may have moved following the respositioning; 165 // The tile's contents may have moved following the respositioning;
166 // adjust for that. 166 // adjust for that.
167 var contentDiffX = this.dragClone.firstChild.offsetLeft - 167 var contentDiffX = this.dragClone.firstChild.offsetLeft -
168 this.firstChild.offsetLeft; 168 this.firstChild.offsetLeft;
169 var contentDiffY = this.dragClone.firstChild.offsetTop - 169 var contentDiffY = this.dragClone.firstChild.offsetTop -
170 this.firstChild.offsetTop; 170 this.firstChild.offsetTop;
171 this.dragClone.style.left = (this.gridX + this.parentNode.offsetLeft - 171 this.dragClone.style.left = (this.gridX + this.parentNode.offsetLeft -
172 contentDiffX) + 'px'; 172 contentDiffX) + 'px';
173 this.dragClone.style.top = 173 this.dragClone.style.top =
174 (this.gridY + this.parentNode.getBoundingClientRect().top - 174 (this.gridY + this.parentNode.getBoundingClientRect().top -
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 }, 896 },
897 897
898 /** 898 /**
899 * Performs all actions necessary when the user moves the cursor during 899 * Performs all actions necessary when the user moves the cursor during
900 * a drag over the tile page. 900 * a drag over the tile page.
901 * @param {Event} e A mouseover event for the drag over. 901 * @param {Event} e A mouseover event for the drag over.
902 */ 902 */
903 doDragOver: function(e) { 903 doDragOver: function(e) {
904 e.preventDefault(); 904 e.preventDefault();
905 905
906 if (currentlyDraggingTile) 906 this.setDropEffect(e.dataTransfer);
907 e.dataTransfer.dropEffect = 'move';
908 else
909 e.dataTransfer.dropEffect = 'copy';
910
911 var newDragIndex = this.getWouldBeIndexForPoint_(e.pageX, e.pageY); 907 var newDragIndex = this.getWouldBeIndexForPoint_(e.pageX, e.pageY);
912 if (newDragIndex < 0 || newDragIndex >= this.tileElements_.length) 908 if (newDragIndex < 0 || newDragIndex >= this.tileElements_.length)
913 newDragIndex = this.dragItemIndex_; 909 newDragIndex = this.dragItemIndex_;
914 this.updateDropIndicator_(newDragIndex); 910 this.updateDropIndicator_(newDragIndex);
915 }, 911 },
916 912
917 /** 913 /**
918 * Performs all actions necessary when the user completes a drop. 914 * Performs all actions necessary when the user completes a drop.
919 * @param {Event} e A mouseover event for the drag drop. 915 * @param {Event} e A mouseover event for the drag drop.
920 */ 916 */
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 assert(false); 1019 assert(false);
1024 }, 1020 },
1025 1021
1026 /** 1022 /**
1027 * Called when a tile has been moved (via dragging). Override this to make 1023 * Called when a tile has been moved (via dragging). Override this to make
1028 * backend updates. 1024 * backend updates.
1029 * @param {Node} draggedTile The tile that was dropped. 1025 * @param {Node} draggedTile The tile that was dropped.
1030 */ 1026 */
1031 tileMoved: function(draggedTile) { 1027 tileMoved: function(draggedTile) {
1032 }, 1028 },
1029
1030 /**
1031 * Sets the drop effect on |dataTransfer| to the desired value (e.g.
1032 * 'copy').
1033 * @param {Object} dataTransfer The drag event dataTransfer object.
1034 */
1035 setDropEffect: function(dataTransfer) {
1036 assert(false);
1037 },
1033 }; 1038 };
1034 1039
1035 return { 1040 return {
1036 getCurrentlyDraggingTile: getCurrentlyDraggingTile, 1041 getCurrentlyDraggingTile: getCurrentlyDraggingTile,
1037 TilePage: TilePage, 1042 TilePage: TilePage,
1038 }; 1043 };
1039 }); 1044 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/ntp4/new_tab.js ('k') | chrome/browser/ui/browser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698