OLD | NEW |
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 'use strict'; | 5 'use strict'; |
6 | 6 |
7 /** | 7 /** |
8 * Scrollable thumbnail ribbon at the bottom of the Gallery in the Slide mode. | 8 * Scrollable thumbnail ribbon at the bottom of the Gallery in the Slide mode. |
9 * | 9 * |
10 * @param {Document} document Document. | 10 * @param {Document} document Document. |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 }; | 337 }; |
338 | 338 |
339 /** | 339 /** |
340 * Content change handler. | 340 * Content change handler. |
341 * | 341 * |
342 * @param {Event} event Event. | 342 * @param {Event} event Event. |
343 * @private | 343 * @private |
344 */ | 344 */ |
345 Ribbon.prototype.onContentChange_ = function(event) { | 345 Ribbon.prototype.onContentChange_ = function(event) { |
346 var url = event.item.getEntry().toURL(); | 346 var url = event.item.getEntry().toURL(); |
347 this.remapCache_(event.oldEntry.toURL(), url); | 347 if (event.oldEntry.toURL() !== url) { |
| 348 this.remapCache_(event.oldEntry.toURL(), url); |
| 349 } else { |
| 350 delete this.renderCache_[url]; |
| 351 var index = this.dataModel_.indexOf(event.item); |
| 352 this.renderThumbnail_(index); |
| 353 } |
348 | 354 |
349 var thumbnail = this.renderCache_[url]; | 355 var thumbnail = this.renderCache_[url]; |
350 if (thumbnail && event.metadata) | 356 if (thumbnail && event.metadata) |
351 this.setThumbnailImage_(thumbnail, event.item.getEntry(), event.metadata); | 357 this.setThumbnailImage_(thumbnail, event.item.getEntry(), event.metadata); |
352 }; | 358 }; |
353 | 359 |
354 /** | 360 /** |
355 * Update the thumbnail element cache. | 361 * Update the thumbnail element cache. |
356 * | 362 * |
357 * @param {string} oldUrl Old url. | 363 * @param {string} oldUrl Old url. |
358 * @param {string} newUrl New url. | 364 * @param {string} newUrl New url. |
359 * @private | 365 * @private |
360 */ | 366 */ |
361 Ribbon.prototype.remapCache_ = function(oldUrl, newUrl) { | 367 Ribbon.prototype.remapCache_ = function(oldUrl, newUrl) { |
362 if (oldUrl != newUrl && (oldUrl in this.renderCache_)) { | 368 if (oldUrl != newUrl && (oldUrl in this.renderCache_)) { |
363 this.renderCache_[newUrl] = this.renderCache_[oldUrl]; | 369 this.renderCache_[newUrl] = this.renderCache_[oldUrl]; |
364 delete this.renderCache_[oldUrl]; | 370 delete this.renderCache_[oldUrl]; |
365 } | 371 } |
366 }; | 372 }; |
OLD | NEW |