Ticket #23423: 23423.patch

File 23423.patch, 2.0 KB (added by GerdP, 2 years ago)

add code to remove MouseListener

  • src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java

     
    100100    final BasicStroke markerStroke = new StrokeProperty("draw.rawgps.markers.stroke", "1").get();
    101101
    102102    private final ListenerList<IGeoImageLayer.ImageChangeListener> imageChangeListenerListenerList = ListenerList.create();
     103    private MarkerMouseAdapter mouseAdapter;
    103104
    104105    /**
    105106     * The default color that is used for drawing markers.
     
    192193        fromLayer = null;
    193194        data.forEach(Marker::destroy);
    194195        data.clear();
     196        if (mouseAdapter != null)
     197            mouseAdapter.getMapView().removeMouseListener(mouseAdapter);
    195198        super.destroy();
    196199    }
    197200
    198201    @Override
    199202    public LayerPainter attachToMapView(MapViewEvent event) {
    200         event.getMapView().addMouseListener(new MarkerMouseAdapter());
     203        mouseAdapter = new MarkerMouseAdapter(event.getMapView());
     204        event.getMapView().addMouseListener(mouseAdapter);
    201205
    202206        if (event.getMapView().playHeadMarker == null) {
    203207            event.getMapView().playHeadMarker = PlayHeadMarker.create();
     
    581585    }
    582586
    583587    private final class MarkerMouseAdapter extends MouseAdapter {
     588        private final MapView mv;
     589
     590        MarkerMouseAdapter(MapView mapView) {
     591            mv = mapView;
     592        }
     593
    584594        @Override
    585595        public void mousePressed(MouseEvent e) {
    586596            if (e.getButton() != MouseEvent.BUTTON1)
     
    608618            }
    609619            invalidate();
    610620        }
     621
     622        /**
     623         * @return the mapView
     624         */
     625        public MapView getMapView() {
     626            return mv;
     627        }
    611628    }
    612629
    613630    public static final class ShowHideMarkerText extends AbstractAction implements LayerAction {