Backspace and delete buttons don't work properly for deleting tracks

Bug #1688074 reported by Art
52
This bug affects 12 people
Affects Status Importance Assigned to Milestone
KiCad
Expired
Medium

Bug Description

Not so long ago a very useful feature was implemented which enables deleting tracks while in the track drawing mode. While in track drawing mode you push delete to delete a track segment and backspace to delete the whole track up to the nearest pad or via (there was a separate bug report here https://bugs.launchpad.net/kicad/+bug/1490958) Unfortunately it is still not working properly. If the track is within another footprint extents or next to another footprint, pressing DEL or Backspace deletes the track segment or the whole track (which is correct behavior) but at the same time it deletes the footprint as well (which is not suppose to happen) If you hit undo you can reverse deleting the footprint while the track remains deleted. So you can eventually get the the desired result, it just takes several steps.

Application: kicad
Version: (2017-04-26 revision ade263f30)-makepkg, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.11 libssh2/1.8.0 nghttp2/1.19.0 librtmp/2.3
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.60.0
Curl: 7.52.1
KiCad - Compiler: GCC 6.3.0 with C++ ABI 1010
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  KICAD_SCRIPTING_ACTION_MENU=ON
                  BUILD_GITHUB_PLUGIN=ON
                  KICAD_USE_OCE=ON

Tags: gal pcbnew pns
tags: added: pns
Revision history for this message
Eldar Khayrullin (eldar) wrote :

Application: kicad
Version: 5.0.0-rc2-dev-unknown-30a78f0~62~ubuntu17.10.1, release build
Libraries:
    wxWidgets 3.0.3
    libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
Platform: Linux 4.13.0-36-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.62.0
    Curl: 7.55.1
    Compiler: GCC 7.2.0 with C++ ABI 1011

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_SPICE=ON

tags: added: gal pcbnew
Changed in kicad:
status: New → Confirmed
Jeff Young (jeyjey)
Changed in kicad:
importance: Undecided → Low
Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

@Seth, did by chance your commit d0ffff3b88 fix this bug or is this something different?

Revision history for this message
Seth Hillbrand (sethh) wrote :

Hmm... What was the expected behavior here?

Currently, d0ffff3b88 just prevents delete from happening while actively routing. I tested and it looks like we can use both delete and alt-delete from within the routing tool as long as you are not actively routing.

I have a patch to allow deleting tracks while routing but it deactivates the full route. I feel like this is not really beneficial as the user would lose their track unexpectedly.

I've looked at ways to allow deletion while keeping the current track but I don't understand the tool framework sufficiently to implement this at the moment. Currently if you allow the delete event to proceed, the PointEditor gets activated, an activation event that stops the routing. I assume that the tool manager is just iterating through tools that tie with interactiveSelection event.

Just skipping the activation events is not a good idea either because then we end up with a partially routed track even when a hotkey has triggered another action (e.g. placing a component).

There's probably a clever solution to this but it escapes me for now.

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

I don't know that the expected behavior was ever defined only that it worked a certain way and now it acts a different way. Maybe that is the fundamental problem here, we didn't define the behavior so everyone has their own expectations and we have no good response. Before we make any more changes to the route, we should define this behavior first. That's something to discuss during v6 development.

Revision history for this message
Jeff Young (jeyjey) wrote :

Bumping the priority and setting to 6.0.

Changed in kicad:
milestone: none → 6.0.0-rc1
importance: Low → Medium
Changed in kicad:
status: Confirmed → Triaged
assignee: nobody → Tomasz Wlostowski (twlostow)
Revision history for this message
eelik (eelik) wrote :

The original description of the situation isn't true anymore. Delete or Backspace do nothing while routing. But I miss possibility to delete the last segment or two. On the other hand deleting shouldn't be too greedy. Maybe deleting the last segment (attached to the mouse cursor while routing) with Backspace and warping the cursor back to the end of the previous segment would be good.

This would also work as some kind of "undo routing segment by segment" feature if Backspace was hit several times.

Delete key could then delete up to a via or pad. Certainly not further.

(Art's description about the two keys is vice versa compared to how they behave in normal mode - Backspace deletes a segment, Delete a track.)

Revision history for this message
Giorgio Croci Candiani (g-crocic) wrote :

(Slightly different from the original bug listed in 2017, but falls under the same description)

Until a few nightlies ago (can't recall exactly when it broke), pressing "del" on a "dead branch" of an otherwise connected track only removed the dead branch. As far as I recall, it has ALWAYS been this way in KiCAD.
In the nightly below, "del" always deletes the whole track. Very annoying, not just because it deviated from the standard consolidated behaviour, but also because it was a very useful function.

Application: Pcbnew
Version: (5.1.0-1171-g743c65012), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

KiCad bug tracker has moved to Gitlab. This report is now available here: https://gitlab.com/kicad/code/kicad/-/issues/1767

Changed in kicad:
status: Triaged → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.