Release event listeners on close
- Issue MatterHackers/MCCentral#3016 Switching colors leaks GuiWidgets
This commit is contained in:
parent
a66f318834
commit
7aba4267c0
3 changed files with 14 additions and 7 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue