From d6b5034764e4e3b932d9b402c4f81549aa82d585 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 19 Sep 2023 22:23:07 +0200 Subject: [PATCH] Don't do anything if legacy column already in right state --- .../preset/ComponentPresetChooserDialog.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java index 147af6f52..8a6203ca9 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java @@ -251,10 +251,17 @@ public class ComponentPresetChooserDialog extends JDialog { showLegacyCheckBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { - updateFilters(); - tm.setColumnVisible(legacyColumn, showLegacyCheckBox.isSelected()); + boolean selected = e != null && e.getStateChange() == ItemEvent.SELECTED; + if (tm.isColumnVisible(legacyColumn) == selected) { + // No change + return; + } - if (showLegacyCheckBox.isSelected()) { + updateFilters(); + + tm.setColumnVisible(legacyColumn, selected); + + if (selected) { // Let's say the optimal width is 100 (you can adjust this as needed) int optimalWidth = 50; legacyColumn.setPreferredWidth(optimalWidth);