Ticket #17040: 17040-pref-dlg.patch

File 17040-pref-dlg.patch, 1.7 KB (added by GerdP, 5 years ago)
  • src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java

     
    4242
    4343    private final PreferenceTabbedPane tpPreferences = new PreferenceTabbedPane();
    4444    private final ContextSensitiveHelpAction helpAction = new ContextSensitiveHelpAction();
     45    private final WindowEventHandler windowEventHandler = new WindowEventHandler();
    4546    private boolean canceled;
    4647
    4748    /**
     
    8384        tpPreferences.buildGui();
    8485        tpPreferences.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    8586        c.add(buildActionPanel(), BorderLayout.SOUTH);
     87        addWindowListener(windowEventHandler);
    8688
    87         addWindowListener(new WindowEventHandler());
    88 
    8989        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
    9090        setHelpContext(HelpUtil.ht("/Action/Preferences"));
    9191    }
     
    176176
    177177        public void cancel() {
    178178            setCanceled(true);
    179             setVisible(false);
    180             tpPreferences.validationListeners.clear();
     179            dispose();
    181180        }
    182181
    183182        @Override
     
    201200            }
    202201
    203202            tpPreferences.savePreferences();
    204             tpPreferences.validationListeners.clear();
    205203            setCanceled(false);
    206             setVisible(false);
     204            dispose();
    207205        }
    208206    }
    209207
     
    213211            new CancelAction().cancel();
    214212        }
    215213    }
     214
     215    @Override
     216    public void dispose() {
     217        removeWindowListener(windowEventHandler);
     218        super.dispose();
     219    }
    216220}