From 8baf954e67da2685e96d10746c744fb3eed303b1 Mon Sep 17 00:00:00 2001 From: Amy Wilder Date: Sun, 15 Feb 2026 15:38:50 -0500 Subject: [PATCH 1/2] Allow wire to be started in spite of hover --- src/jls/edit/SimpleEditor.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/jls/edit/SimpleEditor.java b/src/jls/edit/SimpleEditor.java index d588375..95ffb0b 100755 --- a/src/jls/edit/SimpleEditor.java +++ b/src/jls/edit/SimpleEditor.java @@ -490,10 +490,11 @@ public void actionPerformed(ActionEvent event) { if (!enabled) return; - // if nothing selected and current state is idle - if (selected.size() == 0 && currentState == State.idle) { + // if current state is idle + if (currentState == State.idle) { // start a wire + clearSelected(); Point p = getMousePosition(); if (p == null) return; // not in drawing window @@ -509,6 +510,17 @@ public void actionPerformed(ActionEvent event) { net = new WireNet(); net.add(wireEnd); wireEnd.setNet(net); + if (!selected.isEmpty()) { + // check for overlaps + if (overlap()) { + info.setText(overlapMessage); + info.setForeground(Color.red); + } + else { + info.setText(""); + info.setForeground(Color.black); + } + } repaint(); } else if (selected.size() == 1){ From b1f1573377eaf2c379eb4279aed1068425a5e4d1 Mon Sep 17 00:00:00 2001 From: Amy Wilder <74995093+HenryWilder@users.noreply.github.com> Date: Mon, 16 Feb 2026 11:17:17 -0500 Subject: [PATCH 2/2] Remove tautology !selected.isEmpty() will always be true upon adding the wireEnd to the selection. It also fails to capture the intent, which is that if there WAS a selection, there are elements that are likely overlapping. If there was no selection, there are likely no elements overlapping. --- src/jls/edit/SimpleEditor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jls/edit/SimpleEditor.java b/src/jls/edit/SimpleEditor.java index 95ffb0b..e896d3c 100755 --- a/src/jls/edit/SimpleEditor.java +++ b/src/jls/edit/SimpleEditor.java @@ -494,6 +494,7 @@ public void actionPerformed(ActionEvent event) { if (currentState == State.idle) { // start a wire + boolean hadSelection = !selected.isEmpty(); clearSelected(); Point p = getMousePosition(); if (p == null) @@ -510,7 +511,7 @@ public void actionPerformed(ActionEvent event) { net = new WireNet(); net.add(wireEnd); wireEnd.setNet(net); - if (!selected.isEmpty()) { + if (hadSelection) { // check for overlaps if (overlap()) { info.setText(overlapMessage);