Skip to content

Commit e4b923b

Browse files
committed
Append promise of image loading to the plot api so it can wait for it
1 parent e5bc429 commit e4b923b

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

src/traces/image/plot.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {
155155
image3
156156
.attr('style', 'image-rendering: optimizeSpeed; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated;');
157157

158-
new Promise(function(resolve) {
158+
var p = new Promise(function(resolve) {
159159
if(trace._isFromZ) {
160160
resolve();
161161
} else if(trace._isFromSource) {
@@ -177,11 +177,9 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {
177177
var image = sel.node();
178178
image.onload = function() {
179179
context.drawImage(image, 0, 0);
180-
// we need to wait for the image to be loaded in order to redraw it from the canvas
181-
if(!fastImage) resolve();
180+
resolve();
182181
};
183182
sel.attr('xlink:href', trace.source);
184-
if(fastImage) resolve();
185183
}
186184
})
187185
.then(function() {
@@ -208,5 +206,7 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {
208206
displayImage.attr('xlink:href', href);
209207
}
210208
});
209+
210+
gd._promises.push(p);
211211
});
212212
};

test/jasmine/tests/image_test.js

-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ var assertHoverLabelContent = customAssertions.assertHoverLabelContent;
1414
var supplyAllDefaults = require('../assets/supply_defaults');
1515
var Fx = require('@src/components/fx');
1616
var drag = require('../assets/drag');
17-
var delay = require('../assets/delay');
1817

1918
var incompatibleUserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15';
2019

@@ -692,7 +691,6 @@ describe('image hover:', function() {
692691
mockCopy.data[0].colormodel = 'rgba';
693692
mockCopy.data[0].hovertemplate = '%{' + test[0] + '}<extra></extra>';
694693
Plotly.newPlot(gd, mockCopy)
695-
.then(delay(100)) // wait for the image to be loaded into canvas
696694
.then(function() {_hover(205, 125);})
697695
.then(function() {
698696
assertHoverLabelContent({

0 commit comments

Comments
 (0)