Confusing UX for "highlight copper net" / ctrl+click
<!-- --------Before Creating a New Issue----------- * Limit report to a single issue. * Search the issue tracker to verify the issue has not already been reported. * Complete all instructions between `template markers <>. * Keep report contents limited to the necessary information required to fix the issue. ---------Add your issue details below----------- --> # Description I hesitate to bring this up because I know the mouse modifier key situation is a huge can of worms (#8490), but this is frustrating enough that I'm going to note it anyway. I understand if it's too late in v6 to do anything about it and/or you don't want to reopen this particular bundle of joy, but I think there's an easy solution :tm: (results not guaranteed). The ctrl+click modifier to highlight a copper net in pcbnew presents a few UX problems. 1. Ctrl+click is typically a selection action in other software. It's really easy to highlight a net accidentally when you're trying to add to selection instead (shift+click). I can't overstate how strong the muscle memory is for ctrl+click multiselection. 2. Net highlighting and selection appear the same visually, which doesn't make it apparent that you've highlighted instead of selected (#9521). Instead it appears that your selection action has actually selected all copper in the net, which is confusing. The immediate reaction is "why did my careful selection expand so far beyond what I clicked?", not "oops, I highlighted instead of selected." For users who don't know what net highlighting is (all new users), this is probably not something you're going to figure out on your own. Instead it just appears that kicad is buggy and/or frustrating to use. 3. The selection isn't destroyed when you highlight, which is good, but often the natural reaction to this confusing state of affairs is to click around to clear your selection. Now your careful multi-selection masterpiece is destroyed, and the net is still highlighted. This is the opposite of what the user wanted, which was for the net to be unhighlighted and the selection to be maintained. Yes, the user did exactly the opposite of what they should have done (ctrl+click again to clear highlighting, or ctrl+backtick), but again, the user is confused and trying to figure out what's going on. Repeating the exact same action that got them here isn't the natural next step. Basically, this boils down to: it's really easy to accidentally highlight when you're trying to select, it's not obvious what you've done due to selection and highlighting presenting identically, it's hard to get out of if you don't know what's going on, and it's easy to destroy your selection in the process. Also, given how constrained the mouse click modifier table is, does it make sense to have ctrl+click devoted to net highlighting? Ctrl+click is arguably the most valuable of all of the mouse click modifier keys. Net highlighting is already quite easy to accomplish by hovering over a track and pressing backtick, and that's harder to activate accidentally (= the user is doing it intentionally and understands what is happening). My suggestion is to just use backtick for net highlighting, and switch ctrl+click over to one of the selection modes (OR-select or XOR-select). I think that would resolve the net highlight confusion and also improve the selection experience, without making it any harder to deliberately use the net highlight feature. # Steps to reproduce 1. # KiCad Version <!-- Copy version information (from main menu Help->About KiCad ->Copy Version Info) and paste it between the triple backticks below to preserve the formatting. --> ``` Application: KiCad PCB Editor Version: (5.99.0-13271-gfb734a6313), release build Libraries: wxWidgets 3.0.5 libcurl/7.80.0 OpenSSL/1.1.1l zlib/1.2.11 brotli/1.0.9 zstd/1.5.0 libidn2/2.3.2 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.46.0 Platform: Linux 5.10.79-1-lts x86_64, 64 bit, Little endian, wxGTK, KDE, x11 Build Info: Date: Nov 13 2021 16:17:27 wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24 Boost: 1.76.0 OCC: 7.5.3 Curl: 7.80.0 ngspice: 35 Compiler: GCC 11.1.0 with C++ ABI 1016 Build settings: KICAD_USE_OCC=ON KICAD_SPICE=ON ```
issue