diff --git a/ApplicationView/PrinterModels.cs b/ApplicationView/PrinterModels.cs index fa0a137ee..ae89aff75 100644 --- a/ApplicationView/PrinterModels.cs +++ b/ApplicationView/PrinterModels.cs @@ -764,8 +764,6 @@ namespace MatterHackers.MatterControl this.Connection.ReadLineReplacementString = this.Settings.GetValue(SettingsKey.read_regex); } - - public PrinterViewState ViewState { get; } = new PrinterViewState(); private PrinterSettings _settings; diff --git a/PartPreviewWindow/PrinterTabPage.cs b/PartPreviewWindow/PrinterTabPage.cs index 9cf872649..c9c6158b9 100644 --- a/PartPreviewWindow/PrinterTabPage.cs +++ b/PartPreviewWindow/PrinterTabPage.cs @@ -97,10 +97,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } }; - printer.ViewState.ViewModeChanged += (s, e) => - { - this.SetViewMode(e.ViewMode); - }; + printer.ViewState.ViewModeChanged += ViewState_ViewModeChanged; layerScrollbar = new SliceLayerSelector(printer, sceneContext) { @@ -209,6 +206,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } + private void ViewState_ViewModeChanged(object sender, ViewModeChangedEventArgs e) + { + this.SetViewMode(e.ViewMode); + } + private void ConfigurePrinter_Changed(object sender, EventArgs e) { this.ProcessOptionalTab(); @@ -400,6 +402,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow sceneContext.LoadedGCodeChanged -= BedPlate_LoadedGCodeChanged; printer.ViewState.ConfigurePrinterChanged -= ConfigurePrinter_Changed; + printer.ViewState.ViewModeChanged -= ViewState_ViewModeChanged; base.OnClosed(e); } diff --git a/PartPreviewWindow/SliceLayerSelector.cs b/PartPreviewWindow/SliceLayerSelector.cs index 2697213e4..f3e7609e3 100644 --- a/PartPreviewWindow/SliceLayerSelector.cs +++ b/PartPreviewWindow/SliceLayerSelector.cs @@ -200,7 +200,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow set => layerSlider.Value = value; } - public override void OnBoundsChanged(EventArgs e) { base.OnBoundsChanged(e); @@ -212,6 +211,13 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } + public override void OnClosed(ClosedEventArgs e) + { + base.OnClosed(e); + + sceneContext.ActiveLayerChanged -= ActiveLayer_Changed; + } + private void ActiveLayer_Changed(object sender, EventArgs e) { if (layerSlider != null