Ticket #17040: 17040-work4.patch

File 17040-work4.patch, 5.4 KB (added by GerdP, 5 years ago)
  • src/org/openstreetmap/josm/gui/MainPanel.java

     
    88import javax.swing.JPanel;
    99
    1010import org.openstreetmap.josm.actions.mapmode.MapMode;
     11import org.openstreetmap.josm.data.UndoRedoHandler;
    1112import org.openstreetmap.josm.gui.layer.Layer;
    1213import org.openstreetmap.josm.gui.layer.MainLayerManager;
    1314import org.openstreetmap.josm.gui.layer.MainLayerManager.LayerAvailabilityEvent;
     
    6566            map = null;
    6667            MainApplication.map = map;
    6768            add(getGettingStarted(), BorderLayout.CENTER);
     69            UndoRedoHandler.getInstance().clean();
    6870        }
    6971        setVisible(true);
    7072
  • src/org/openstreetmap/josm/gui/MapView.java

     
    807807        }
    808808        nonChangedLayersBuffer = null;
    809809        offscreenBuffer = null;
     810        removeAllZoomChangeListeners();
    810811    }
    811812
    812813    /**
  • src/org/openstreetmap/josm/gui/NavigatableComponent.java

     
    128128    }
    129129
    130130    /**
     131     * Removes a zoom change listener
     132     *
     133     * @param listener the listener. Ignored if null or already absent
     134     */
     135    protected static void removeAllZoomChangeListeners() {
     136        zoomChangeListeners.clear();
     137    }
     138
     139
     140    /**
    131141     * Adds a zoom change listener
    132142     *
    133143     * @param listener the listener. Ignored if null or already registered.
  • src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java

     
    222222        return noteData != null ? noteData.getSelectedNote() : null;
    223223    }
    224224
     225    @Override
     226    public void destroy() {
     227        MainApplication.getLayerManager().removeLayerChangeListener(this);
     228        super.destroy();
     229    }
     230
    225231    private static class NoteRenderer implements ListCellRenderer<Note> {
    226232
    227233        private final DefaultListCellRenderer defaultListCellRenderer = new DefaultListCellRenderer();
     
    436442            }
    437443        }
    438444    }
     445
    439446}
  • src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

     
    4545import org.openstreetmap.josm.actions.relation.RecentRelationsAction;
    4646import org.openstreetmap.josm.actions.relation.SelectMembersAction;
    4747import org.openstreetmap.josm.actions.relation.SelectRelationAction;
     48import org.openstreetmap.josm.data.UndoRedoHandler;
    4849import org.openstreetmap.josm.data.osm.DataSet;
    4950import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
    5051import org.openstreetmap.josm.data.osm.IPrimitive;
     
    208209
    209210    @Override
    210211    public void destroy() {
     212        UndoRedoHandler.getInstance().removeCommandQueueListener(recentRelationsAction);
    211213        recentRelationsAction.destroy();
    212214        model.clear();
    213215        super.destroy();
  • src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

     
    455455
    456456    @Override
    457457    public void destroy() {
     458        dialogsPanel = null;
    458459        rememberHeight();
    459460        closeDetachedDialog();
    460461        if (isShowing) {
  • src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

     
    551551
    552552    @Override
    553553    public void destroy() {
     554        taginfoAction.destroy();
    554555        super.destroy();
    555556        Config.getPref().removeKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
    556557        Container parent = pluginHook.getParent();
  • src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java

     
    134134                    default: return false;
    135135                }
    136136            }
     137            dialog.closeDialog();
    137138        }
    138139
    139140        return true;
     
    347348     */
    348349    public void closeDialog() {
    349350        setVisible(false);
     351        MainApplication.removeMapFrameListener(saveSessionAction);
     352        saveSessionAction.destroy();
    350353        dispose();
    351354    }
    352355