diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index 865f636..b51a579 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -940,7 +941,17 @@ void VisualizationGraphWidget::mousePressEvent(QMouseEvent *event) impl->setSelectionZonesEditionEnabled(true); if ((event->modifiers() == Qt::ControlModifier) && (selectedZone != nullptr)) { - selectedZone->setAssociatedEditedZones(parentVisualizationWidget()->selectionZoneManager().selectedItems()); + auto alreadySelectedZones = parentVisualizationWidget()->selectionZoneManager().selectedItems(); + selectedZone->setAssociatedEditedZones(alreadySelectedZones); + if(SciQLop::containers::contains(alreadySelectedZones, selectedZone)) + { + alreadySelectedZones.removeOne(selectedZone); + } + else + { + alreadySelectedZones.append(selectedZone); + } + parentVisualizationWidget()->selectionZoneManager().select(alreadySelectedZones); } else {