diff --git a/light9/web/light9-color-picker.html b/light9/web/light9-color-picker.html
--- a/light9/web/light9-color-picker.html
+++ b/light9/web/light9-color-picker.html
@@ -155,7 +155,7 @@
sliderWriteValue: { type: Number, notify: true },
},
observers: [
- 'updateSmall(color)',
+ 'readColor(color)',
'onValue(value)',
'writeColor(hueSatColor, value)'
],
@@ -178,7 +178,12 @@
writeColor: function(hueSatColor, value) {
this.color = one.color(hueSatColor).value(value / 255).hex();
},
- updateSmall: function(color) {
+ readColor: function(color) {
+ if (this.$.largeRainbowComp.style.display == 'block') {
+ // for performance, don't do color searches on covered widget
+ return;
+ }
+
// setting immediate-value doesn't work
this.sliderWriteValue = one.color(color).value() * 255;
@@ -198,7 +203,7 @@
let rect = this.$.smallRainbowComp.getBoundingClientRect();
document.body.append(large);
large.style.position = 'fixed';
- large.style.left = (rect.left - 100) + 'px';
+ large.style.left = (rect.left) + 'px';
large.style.top = (rect.top - 50) + 'px';
},
showLarge: function() {
@@ -213,6 +218,7 @@
},
hideLarge: function() {
this.$.largeRainbowComp.style.display = 'none';
+ this.readColor(this.color);
},
onEnterSmall: function() {
// not if we just closed the large one