| Index: packages/charted/lib/charts/src/layout_area_impl.dart
|
| diff --git a/packages/charted/lib/charts/src/layout_area_impl.dart b/packages/charted/lib/charts/src/layout_area_impl.dart
|
| index d4bbaefcff075a2d91d214f2a5645ad6aaccfb7b..c6cd537824c0edca6724f43958bd493fb9b3e178 100644
|
| --- a/packages/charted/lib/charts/src/layout_area_impl.dart
|
| +++ b/packages/charted/lib/charts/src/layout_area_impl.dart
|
| @@ -78,7 +78,7 @@ class DefaultLayoutAreaImpl implements LayoutArea {
|
| void dispose() {
|
| _configEventsDisposer.dispose();
|
| _dataEventsDisposer.dispose();
|
| - _config.legend.dispose();
|
| + _config.legend?.dispose();
|
| }
|
|
|
| static bool isNotInline(Element e) =>
|
| @@ -205,45 +205,45 @@ class DefaultLayoutAreaImpl implements LayoutArea {
|
|
|
| // If we previously displayed a series, verify that we are
|
| // still using the same renderer. Otherwise, dispose the older one.
|
| - if (_renderer != null && series.renderer != _renderer) {
|
| - _rendererDisposer.dispose();
|
| - }
|
| -
|
| - // Save and subscribe to events on the the current renderer.
|
| - _renderer = series.renderer;
|
| - if (_renderer is ChartRendererBehaviorSource) {
|
| - _rendererDisposer.addAll([
|
| - _renderer.onValueClick.listen((ChartEvent e) {
|
| - if (state != null) {
|
| - if (state.isSelected(e.row)) {
|
| - state.unselect(e.row);
|
| - } else {
|
| - state.select(e.row);
|
| + if (_renderer != series.renderer) {
|
| + if (_renderer != null) _rendererDisposer.dispose();
|
| +
|
| + // Save and subscribe to events on the the current renderer.
|
| + _renderer = series.renderer;
|
| + if (_renderer is ChartRendererBehaviorSource) {
|
| + _rendererDisposer.addAll([
|
| + _renderer.onValueClick.listen((ChartEvent e) {
|
| + if (state != null) {
|
| + if (state.isSelected(e.row)) {
|
| + state.unselect(e.row);
|
| + } else {
|
| + state.select(e.row);
|
| + }
|
| + }
|
| + if (_valueMouseClickController != null) {
|
| + _valueMouseClickController.add(e);
|
| + }
|
| + }),
|
| + _renderer.onValueMouseOver.listen((ChartEvent e) {
|
| + if (state != null) {
|
| + state.preview = e.row;
|
| }
|
| - }
|
| - if (_valueMouseClickController != null) {
|
| - _valueMouseClickController.add(e);
|
| - }
|
| - }),
|
| - _renderer.onValueMouseOver.listen((ChartEvent e) {
|
| - if (state != null) {
|
| - state.preview = e.row;
|
| - }
|
| - if (_valueMouseOverController != null) {
|
| - _valueMouseOverController.add(e);
|
| - }
|
| - }),
|
| - _renderer.onValueMouseOut.listen((ChartEvent e) {
|
| - if (state != null) {
|
| - if (e.row == state.preview) {
|
| - state.hovered = null;
|
| + if (_valueMouseOverController != null) {
|
| + _valueMouseOverController.add(e);
|
| }
|
| - }
|
| - if (_valueMouseOutController != null) {
|
| - _valueMouseOutController.add(e);
|
| - }
|
| - })
|
| - ]);
|
| + }),
|
| + _renderer.onValueMouseOut.listen((ChartEvent e) {
|
| + if (state != null) {
|
| + if (e.row == state.preview) {
|
| + state.hovered = null;
|
| + }
|
| + }
|
| + if (_valueMouseOutController != null) {
|
| + _valueMouseOutController.add(e);
|
| + }
|
| + })
|
| + ]);
|
| + }
|
| }
|
|
|
| Iterable<ChartLegendItem> legend =
|
|
|