From 4abc1de7c60c1f76c79b633539c19d4af02000cb Mon Sep 17 00:00:00 2001 From: John Lewin Date: Thu, 18 Oct 2018 16:25:35 -0700 Subject: [PATCH] Revise close on printer change logic - Issue MatterHackers/MCCentral#4305 Multiple printer tabs appear --- .../PartPreviewWindow/PartPreviewContent.cs | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs b/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs index 3bd1d663f..a95e22ae0 100644 --- a/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs +++ b/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs @@ -328,21 +328,20 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { var activePrinter = ApplicationController.Instance.ActivePrinter; - // If ActivePrinter has been nulled and a printer tab is open, close it - var tab1 = tabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage); - if ((activePrinter == null || !activePrinter.Settings.PrinterSelected) - && tab1 != null) + // Close existing printer tabs + if (tabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage) is ITab tab + && tab.TabContent is PrinterTabPage printerPage + && (activePrinter == null || printerPage.printer != activePrinter)) { - tabControl.RemoveTab(tab1); + tabControl.RemoveTab(tab); } - else + + if (activePrinter.Settings.PrinterSelected) { - if (activePrinter.Settings.PrinterSelected) - { - // Create and switch to new printer tab - tabControl.ActiveTab = this.CreatePrinterTab(activePrinter, theme); - } + // Create and switch to new printer tab + tabControl.ActiveTab = this.CreatePrinterTab(activePrinter, theme); } + tabControl.RefreshTabPointers(); }, ref unregisterEvents);