
I honestly think this ought to be in "bug reports" instead of feature requests, but it seems to be behaving exactly as the programmer designed it, so I guess my feature request is that you re-spec it to not break the selected tokens API feature. Lets say you have a macro that basically goes !api ?{something} @{target|token_id} Regardless of what order the components are in the command line, it will always do the @{target} first, then the ?{}, and then send the message to the API. The first thing it will do is it will clear all selected tokens from the desktop, and give you a message to click on a token to choose a target. After you click on the token, the message to choose a target, and inability to select tokens will remain as a pop-up appears as the ?{} components are processed. When the last ?{} has been processed, the message to choose a target FINALLY goes away, and the macro command string is sent to the API, but the API INCORRECTLY is told that there were no tokens selected when this process started. That is because the system cleared all of the selected tokens before making note of them so that targets could be chosen. Undesirable behaviors are: (1) When there is a @{target}, it clears all selected tokens before making note of what tokens were selected. This is the big flaw that breaks macros. (2) The choose target box stays present while the ?{} are being processed. Choosing targets is done by this point and it should go away. At the very least the restriction on selected tokens should be lifted by this point so that we can select tokens and have the tokens sent to the API. (3) when the "choose targets" box finally disappears, the system does not re-select the tokens that were selected before the box appeared. Requested fix is to change the change this behavior. One way would be change the order in which things happen. First have it process the ?{} queries, then make note which tokens are selected, then clear the selected tokens and ask user to choose targets. Then after sending the API message, reselect all the previously selected tokens. There are other ways in which the undesirable behavior can be mitigated.