Index: Source/devtools/front_end/elements/Spectrum.js |
diff --git a/Source/devtools/front_end/elements/Spectrum.js b/Source/devtools/front_end/elements/Spectrum.js |
index 083c394c4d4038449fc0dd211fa986da395caf58..4c27644252e5259d2909bf32dd4773638a1b6b0e 100644 |
--- a/Source/devtools/front_end/elements/Spectrum.js |
+++ b/Source/devtools/front_end/elements/Spectrum.js |
@@ -258,8 +258,6 @@ WebInspector.Spectrum.prototype = { |
if (palette.mutable) |
numItems++; |
var rowsNeeded = Math.max(1, Math.ceil(numItems / WebInspector.Spectrum._itemsPerPaletteRow)); |
- for (var i = 0; palette.mutable && i < rowsNeeded * WebInspector.Spectrum._itemsPerPaletteRow - numItems; i++) |
- this._paletteContainer.createChild("div", "spectrum-palette-color empty-color"); |
if (palette.mutable) |
this.contentElement.appendChild(this._addColorToolbar.element); |
else |
@@ -318,8 +316,25 @@ WebInspector.Spectrum.prototype = { |
this._dragElement.style.top = (offsetY - this._dragHotSpotY) + "px"; |
var children = Array.prototype.slice.call(this._paletteContainer.children); |
var index = children.indexOf(this._dragElement); |
+ /** @type {!Map.<!Element, {left: number, top: number}>} */ |
+ var swatchOffsets = new Map(); |
+ for (var swatch of children) |
+ swatchOffsets.set(swatch, swatch.totalOffset()); |
+ |
if (index !== newIndex) |
this._paletteContainer.insertBefore(this._dragElement, children[newIndex > index ? newIndex + 1 : newIndex]); |
+ |
+ for (var swatch of children) { |
+ if (swatch === this._dragElement) |
+ continue; |
+ var before = swatchOffsets.get(swatch); |
+ var after = swatch.totalOffset(); |
+ if (before.left !== after.left || before.top !== after.top) { |
+ swatch.animate([ |
+ { transform: "translateX(" + (before.left - after.left) + "px) translateY(" + (before.top - after.top) + "px)" }, |
+ { transform: "none" }], { duration: 100, easing: "cubic-bezier(0, 0, 0.2, 1)" }); |
+ } |
+ } |
}, |
/** |
@@ -376,6 +391,7 @@ WebInspector.Spectrum.prototype = { |
previewElement.appendChild(this._createPaletteColor(palette.colors[i])); |
for (; i < colorsPerPreviewRow; i++) |
previewElement.createChild("div", "spectrum-palette-color empty-color"); |
+ |
previewElement.addEventListener("click", this._paletteSelected.bind(this, palette)); |
return previewElement; |
}, |