summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Canvas.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/Canvas.cpp b/src/Canvas.cpp
index e5e165c..9858713 100644
--- a/src/Canvas.cpp
+++ b/src/Canvas.cpp
@@ -1523,7 +1523,8 @@ GanvCanvasImpl::port_event(GdkEvent* event, GanvPort* port)
event->button.y_root == control_start_y) {
select_port_toggle(port, event->button.state);
}
- } else if (event->button.state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK)) {
+ } else if (_selected_ports.empty() ||
+ (event->button.state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK))) {
select_port_toggle(port, event->button.state);
} else {
selection_joined_with(port);