| OLD | NEW |
| 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 /** | 8 /** |
| 9 * Creates a new Tileobject. Tiles wrap content on a TilePage, providing | 9 * Creates a new Tileobject. Tiles wrap content on a TilePage, providing |
| 10 * some styling and drag functionality. | 10 * some styling and drag functionality. |
| (...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 tile.setGridPosition(animatedX, animatedY); | 440 tile.setGridPosition(animatedX, animatedY); |
| 441 tile.firstChild.setBounds(layout.tileWidth, | 441 tile.firstChild.setBounds(layout.tileWidth, |
| 442 realX - animatedX, | 442 realX - animatedX, |
| 443 realY - animatedY); | 443 realY - animatedY); |
| 444 | 444 |
| 445 // This code calculates whether the tile needs to show a clone of itself | 445 // This code calculates whether the tile needs to show a clone of itself |
| 446 // wrapped around the other side of the tile grid. | 446 // wrapped around the other side of the tile grid. |
| 447 var offTheRight = col == layout.numRowTiles || | 447 var offTheRight = col == layout.numRowTiles || |
| 448 (col == layout.numRowTiles - 1 && tile.hasDoppleganger()); | 448 (col == layout.numRowTiles - 1 && tile.hasDoppleganger()); |
| 449 var offTheLeft = col == -1 || (col == 0 && tile.hasDoppleganger()); | 449 var offTheLeft = col == -1 || (col == 0 && tile.hasDoppleganger()); |
| 450 if (this.dragEnters_ > 0 && (offTheRight || offTheLeft)) { | 450 if (this.isCurrentDragTarget_ && (offTheRight || offTheLeft)) { |
| 451 var sign = offTheRight ? 1 : -1; | 451 var sign = offTheRight ? 1 : -1; |
| 452 tile.showDoppleganger(-layout.numRowTiles * layout.colWidth * sign, | 452 tile.showDoppleganger(-layout.numRowTiles * layout.colWidth * sign, |
| 453 layout.rowHeight * sign); | 453 layout.rowHeight * sign); |
| 454 } else { | 454 } else { |
| 455 tile.clearDoppleganger(); | 455 tile.clearDoppleganger(); |
| 456 } | 456 } |
| 457 }, | 457 }, |
| 458 | 458 |
| 459 /** | 459 /** |
| 460 * Gets the index of the tile that should occupy coordinate (x, y). Note | 460 * Gets the index of the tile that should occupy coordinate (x, y). Note |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 } | 499 } |
| 500 }, | 500 }, |
| 501 | 501 |
| 502 /** | 502 /** |
| 503 * The tile grid has an image mask which fades at the edges. We only show | 503 * The tile grid has an image mask which fades at the edges. We only show |
| 504 * the mask when there is an active drag; it obscures doppleganger tiles | 504 * the mask when there is an active drag; it obscures doppleganger tiles |
| 505 * as they enter or exit the grid. | 505 * as they enter or exit the grid. |
| 506 * @private | 506 * @private |
| 507 */ | 507 */ |
| 508 updateMask_: function() { | 508 updateMask_: function() { |
| 509 if (this.dragEnters_ == 0) { | 509 if (!this.isCurrentDragTarget_) { |
| 510 this.style.WebkitMaskBoxImage = ''; | 510 this.style.WebkitMaskBoxImage = ''; |
| 511 return; | 511 return; |
| 512 } | 512 } |
| 513 | 513 |
| 514 var leftMargin = this.layoutValues_.leftMargin; | 514 var leftMargin = this.layoutValues_.leftMargin; |
| 515 var fadeDistance = 20; | 515 var fadeDistance = 20; |
| 516 var gradient = | 516 var gradient = |
| 517 '-webkit-linear-gradient(left,' + | 517 '-webkit-linear-gradient(left,' + |
| 518 'transparent, ' + | 518 'transparent, ' + |
| 519 'transparent ' + (leftMargin - fadeDistance) + 'px, ' + | 519 'transparent ' + (leftMargin - fadeDistance) + 'px, ' + |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 /** | 684 /** |
| 685 * Performs all actions necessary when the user completes a drop. | 685 * Performs all actions necessary when the user completes a drop. |
| 686 * @param {Event} e A mouseover event for the drag drop. | 686 * @param {Event} e A mouseover event for the drag drop. |
| 687 * @private | 687 * @private |
| 688 */ | 688 */ |
| 689 doDrop_: function(e) { | 689 doDrop_: function(e) { |
| 690 e.stopPropagation(); | 690 e.stopPropagation(); |
| 691 this.isCurrentDragTarget_ = false; | 691 this.isCurrentDragTarget_ = false; |
| 692 | 692 |
| 693 var index = this.currentDropIndex_; | 693 var index = this.currentDropIndex_; |
| 694 if ((index == this.dragItemIndex_) && this.withinPageDrag_) | 694 // Only change data if this was not a 'null drag'. |
| 695 return; | 695 if (!((index == this.dragItemIndex_) && this.withinPageDrag_)) { |
| 696 | 696 var adjustedIndex = this.currentDropIndex_ + |
| 697 var adjustedIndex = this.currentDropIndex_ + | 697 (index > this.dragItemIndex_ ? 1 : 0); |
| 698 (index > this.dragItemIndex_ ? 1 : 0); | 698 if (TilePage.currentlyDraggingTile) { |
| 699 if (TilePage.currentlyDraggingTile) { | 699 this.tileGrid_.insertBefore( |
| 700 this.tileGrid_.insertBefore( | 700 TilePage.currentlyDraggingTile, |
| 701 TilePage.currentlyDraggingTile, | 701 this.tileElements_[adjustedIndex]); |
| 702 this.tileElements_[adjustedIndex]); | 702 } else { |
| 703 } else { | 703 this.addOutsideData(e.dataTransfer, adjustedIndex); |
| 704 this.addOutsideData(e.dataTransfer, adjustedIndex); | 704 } |
| 705 } | 705 } |
| 706 | 706 |
| 707 this.classList.remove('animating-tile-page'); | 707 this.classList.remove('animating-tile-page'); |
| 708 this.cleanUpDrag_(); | 708 this.cleanUpDrag_(); |
| 709 }, | 709 }, |
| 710 | 710 |
| 711 /** | 711 /** |
| 712 * Makes sure all the tiles are in the right place after a drag is over. | 712 * Makes sure all the tiles are in the right place after a drag is over. |
| 713 * @private | 713 * @private |
| 714 */ | 714 */ |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 // This should not get called unless there is a non-default | 822 // This should not get called unless there is a non-default |
| 823 // implementation. | 823 // implementation. |
| 824 assert(false); | 824 assert(false); |
| 825 }, | 825 }, |
| 826 }; | 826 }; |
| 827 | 827 |
| 828 return { | 828 return { |
| 829 TilePage: TilePage, | 829 TilePage: TilePage, |
| 830 }; | 830 }; |
| 831 }); | 831 }); |
| OLD | NEW |