From 7ef98066f19031f057b5effc15ebd00c8a190ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 8 Sep 2016 18:10:48 -0400 Subject: [PATCH] relayout: make updates to layout.paper_bgcolor go through replot - that's because legend and updatemenus depend on 'paper_bgcolor' to default their own 'bgcolor' attribute. --- src/plot_api/plot_api.js | 1 + test/jasmine/tests/legend_test.js | 8 ++++++++ test/jasmine/tests/updatemenus_test.js | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 2a7f445708b..8a048a0ee89 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -1948,6 +1948,7 @@ function _relayout(gd, aobj) { if(p.parts[0].indexOf('scene') === 0) flags.doplot = true; else if(p.parts[0].indexOf('geo') === 0) flags.doplot = true; else if(p.parts[0].indexOf('ternary') === 0) flags.doplot = true; + else if(ai === 'paper_bgcolor') flags.doplot = true; else if(fullLayout._has('gl2d') && (ai.indexOf('axis') !== -1 || p.parts[0] === 'plot_bgcolor') ) flags.doplot = true; diff --git a/test/jasmine/tests/legend_test.js b/test/jasmine/tests/legend_test.js index fbf2c85a875..c832da02dcd 100644 --- a/test/jasmine/tests/legend_test.js +++ b/test/jasmine/tests/legend_test.js @@ -537,6 +537,14 @@ describe('legend relayout update', function() { }).then(function() { assertLegendStyle('rgb(0, 0, 255)', 'rgb(255, 0, 0)', 10); + return Plotly.relayout(gd, 'legend.bgcolor', null); + }).then(function() { + assertLegendStyle('rgb(255, 255, 255)', 'rgb(255, 0, 0)', 10); + + return Plotly.relayout(gd, 'paper_bgcolor', 'blue'); + }).then(function() { + assertLegendStyle('rgb(0, 0, 255)', 'rgb(255, 0, 0)', 10); + done(); }); }); diff --git a/test/jasmine/tests/updatemenus_test.js b/test/jasmine/tests/updatemenus_test.js index e0bac3fff7e..4a47fea1b4f 100644 --- a/test/jasmine/tests/updatemenus_test.js +++ b/test/jasmine/tests/updatemenus_test.js @@ -348,6 +348,14 @@ describe('update menus interactions', function() { // fold up buttons whenever new menus are added assertMenus([0, 0]); + return Plotly.relayout(gd, { + 'updatemenus[0].bgcolor': null, + 'paper_bgcolor': 'black' + }); + }).then(function() { + assertItemColor(selectHeader(0), 'rgb(0, 0, 0)'); + assertItemColor(selectHeader(1), 'rgb(0, 0, 0)'); + done(); }); });