I have isolated my issues with left click in single player games. To view the original issue please read https://forums.ashesofthesingularity.com/475333/page/1/#3619882
TL:DR - the game engine is overly sensitive in thinking you are left clicking and dragging when you only intend to left click. When using the attack command (or set movement point or I assume other commands) the engine responds in odd ways when you click and drag.
As noted in the original posting I have been having issues that when I left click in single player games the game often behaves oddly. I decided to try and isolate the issue and using a variable DPI mouse I loaded up some games and played with different sensitivity settings within the mouse (hardware settings not windows or game sensitivity settings). During this testing I was able to isolate that if the DPI is too high on the mouse so that the pointer is often jittering even with slight hand movements (a single pixel) the engine starts acting funny. The engine assumes that most clicks are now a click and drag.
If you try specific functions such as an attack move and then click and drag at the location (even unintentionally) the engine will often lock in the attack command while reverting back to the seed as the selected unit and lock up (since the attack command is now not available for the selected unit -seed- but the attack command is already selected). This then requires you press escape to keyboard exit the attack command before you can select any other units or give any other commands.
A reasonable solution would be to set a minimum movement to trigger a difference from the click and click-drag commands. IE if you click the mouse, move 2 pixels, and let go of the mouse the engine would see this as a click command exited on the falling(second) edge (as no sane person actually meant to draw a 2 pixel box). This could be even more enhanced if there were a slider to select the minimum box size for click and drag so people can use this to allow for highly sensitive mice.
Required bug fix: in addition to the above suggestion or separate from it the engine needs to not enter click and drag when in specific commands like an attack move. Additionally on an exception that throws the selected unit back to the seed any commands (such as attack move, set destination, patrol, etc) need to be canceled.
Is this being written in C++ by chance?
summary: when in attack move command disable click and drag. when an exception causes the seed to become the selected unit automatically clear any command states (IE attack move, patrol, etc) so that the pointer is not loaded. Also set a minimum movement to transition from a click to clink and drag selection type.
-Yak aka the Groobyman