From 6d2121f48018ba0df77b8a9340734db3bd13c5df Mon Sep 17 00:00:00 2001 From: Taylor Smock Date: Thu, 2 Jan 2020 08:02:15 -0700 Subject: [PATCH] Force one selection at a time and fix UI bug Signed-off-by: Taylor Smock --- .../josm/plugins/mapwithai/backend/MapWithAILayer.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java index 96a55ef..577975e 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java @@ -192,10 +192,13 @@ public class MapWithAILayer extends OsmDataLayer implements ActiveLayerChangeLis @Override public void selectionChanged(SelectionChangeEvent event) { final int maximumAdditionSelection = MapWithAIPreferenceHelper.getMaximumAddition(); - if (maximumAdditionSelection < event.getSelection().size() + if ((event.getSelection().size() - event.getOldSelection().size() > 1 + || maximumAdditionSelection < event.getSelection().size()) && (MapWithAIPreferenceHelper.getMaximumAddition() != 0 || !ExpertToggleAction.isExpert())) { - getDataSet().setSelected(event.getSelection().stream().distinct().limit(maximumAdditionSelection) - .collect(Collectors.toList())); + MainApplication.worker.execute(() -> { + getDataSet().setSelected(event.getSelection().stream().distinct().limit(maximumAdditionSelection) + .limit(event.getOldSelection().size() + 1L).collect(Collectors.toList())); + }); } super.selectionChanged(event); }