Changeset 13149 in josm


Ignore:
Timestamp:
2017-11-23T01:19:28+01:00 (3 weeks ago)
Author:
Don-vip
Message:

fix #10542 - fix broken layer invalidation when selection changes in validator dialog

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java

    r12951 r13149  
    4545import org.openstreetmap.josm.data.validation.ValidatorVisitor;
    4646import org.openstreetmap.josm.gui.MainApplication;
    47 import org.openstreetmap.josm.gui.MapFrame;
    4847import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    4948import org.openstreetmap.josm.gui.PopupMenuHandler;
    5049import org.openstreetmap.josm.gui.SideButton;
    5150import org.openstreetmap.josm.gui.dialogs.validator.ValidatorTreePanel;
    52 import org.openstreetmap.josm.gui.layer.Layer;
    5351import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
    5452import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
     
    320318            tree.resetErrors();
    321319            OsmValidator.saveIgnoredErrors();
    322             MainApplication.getLayerManager().getLayersOfType(ValidatorLayer.class).forEach(Layer::invalidate);
     320            invalidateValidatorLayers();
    323321        }
    324322    }
     
    477475        @Override
    478476        public void mouseClicked(MouseEvent e) {
     477            TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
     478            if (selPath == null) {
     479                tree.clearSelection();
     480            }
     481
    479482            fixButton.setEnabled(false);
    480483            if (ignoreButton != null) {
     
    501504        }
    502505
    503         @Override public void launch(MouseEvent e) {
     506        @Override
     507        public void launch(MouseEvent e) {
    504508            TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
    505509            if (selPath == null)
     
    510514            super.launch(e);
    511515        }
    512 
    513516    }
    514517
     
    529532            fixButton.setEnabled(hasFixes);
    530533            popupMenuHandler.setPrimitives(sel);
    531             MapFrame map = MainApplication.getMap();
    532             if (map != null) {
    533                 map.repaint();
    534             }
     534            invalidateValidatorLayers();
    535535        }
    536536    }
     
    648648                SwingUtilities.invokeAndWait(() -> {
    649649                    MainApplication.undoRedo.afterAdd();
    650                     MainApplication.getLayerManager().getLayersOfType(ValidatorLayer.class).forEach(ValidatorLayer::invalidate);
     650                    invalidateValidatorLayers();
    651651                    tree.resetErrors();
    652652                });
     
    659659        }
    660660    }
     661
     662    private static void invalidateValidatorLayers() {
     663        MainApplication.getLayerManager().getLayersOfType(ValidatorLayer.class).forEach(ValidatorLayer::invalidate);
     664    }
    661665}
Note: See TracChangeset for help on using the changeset viewer.