What is the command for the command-click tool?
terminology - Semantic names for shift-click and ctrl(or cmd)-click? - User Experience Stack Exchange
Command-click doesn't open a new tab, but middle-click does
python - Using click.command to make a function as a command - Stack Overflow
What is Ctrl+Click?
What are some common uses of Ctrl+Click?
How does Ctrl+Click work?
You know how you can change your left click tool by pressing T and then another key depending on what you want? How do you do that with the command click tool?
Any help appreciated!
EDIT: I kind of figured it out, but still not exactly what I wanted. You can sort of shortcut by pressing T, then clicking on your desired tool by pressing command, which will change your command-click tool but not the left click tool. I want to not have to use my mouse at all.
Speculating here, but will confirm later from a Mac. This has been confirmed to be working on a Mac.
Win ctrl+click or a Mac command+click gets picked up by a "normal" click listener, just like a click with any other modifier key (alt+click, shift+click etc).
This is particularly confusing since a ctrl+click on a Mac gets interpreted as a right-click on OS level. Command-click, on the other hand, is not interpreted as a middle-click but rather is a browser preference.
Assuming that you do not have in-site functionality that specifically relies on modified clicks, it would be appropriate to exclude such events from click listeners, and instead allow for them to bubble up to be natively handled by the browser. Given the experience of someone in the similar situation, you should be able to add the following to click handlers (likely a delegate on library level as pointed out by Brilliand):
if (e.metaKey || e.ctrlKey) return;
When added at the beginning of the handler with e referring to a current click event, this should circumvent any following e.preventDefault();
Update:
It actually works! In this rather minimalistic fiddle, I am able to recognize when command-clicked or control-clicked, so as to avoid executing the rest of the click handler which includes ajax-fetching the content and e.preventDefault();. This allows for a command-click to be handled "as intended" on a Mac, i.e. opening the link in a new tab.
With this finding in mind, these lines should now read
if (e.isDefaultPrevented() || e.metaKey || e.ctrlKey) {
return;
}
There is some interesting insight here: https://groups.google.com/forum/#!msg/mozilla.dev.usability/H1qLTur4EFc/gXH007CAPk8J
Apparently the JS you are using can preventDefault() the cmd+click while the middle-click is unaffected. Consult the docs of your JS/Site framework.
When you select some text in the cmd.exe window, the process will carry on in the background until the next time it writes to Standard Output (or STDOUT, the data stream which is shown in the cmd.exe window).
When you exit the selection mode, the process will resume as normal.
You can test this by typing ping www.google.com -t into your cmd.exe window, and selecting some area of the output. You'll see it pause, and when you deselect the output will resume.
Edit: As per Fran's comment, you can use a tool such as Wireshark to see that activity does still happen after the point when you made the selection, and then stops.
Once you click into the Command Prompt window, the console host will no longer allow output to be written. The application itself keeps running, but nothing is written to the screen.
Of course, as long as there is only a single thread, this is basically the same thing as having your process frozen. As the single thread tries to write some output before doing more work.
If I run ping -t localhost and click into the command prompt window, I can then inspect the call stack of the main ping.exe thread with Process Explorer.

We can see that ping.exe tried to write some output. It called write() in the C runtime library. That function, at some point, calls GetConsoleMode. As it seems, that function will check if the user is currently in mark mode and block execution if needed.
Further Analysis
We can further proof this behavior by examining the behavior of ping with Wireshark
When running ping -t superuser.com we see the following output in Wireshark:

Now, let's mark a box in the command prompt.

Suddenly, no more pings are logged in Wireshark. ping is no longer sending any packets.
But we already knew that...
Right, let's see if the output is actually the issue here! Let's direct the output to the NUL device:

Now, there is no longer any ouput. We can now mark text in the box all day long, packets will be logged in Wireshark.
