On Mac, it is possible to crash when shutting down, it is not clear if this is due to
shutting down the app on another thread during logout or something that can happen
during normal shutdown, because it is so difficult to reproduce.
However, from looking at the stack traces it is possible for a [NSApplication terminate:]
event to get processed while Appliction::aboutToQuit() is calling ScriptEngine::waitTillDoneRunning()
This causes AppKit to invoke the static destructors too early. Which in turn, causes the
DependencyManager destructor to fire while there are still many dependencies running.
Unfortunatly, the order of destruction is not determinstic, causing them to get shutdown
in an incorrect order.
To workaround this, we delay the call to QCoreApplication::processEvents() as late as possible,
in the Application destructor. Theoretically, this will be a safe time for the static destructors
to be invoked, because it is after all of the DependencyManager's dependencies have been
manually destroyed.
However, this is only a speculative fix, because this is so difficult to reproduce.
This PR disables handTouch.js.
handTouch.js allows the fingers to animate on the surface of an object.
However, it can sometimes detect collisions with walls or tables when the avatar is standing next to them.
We will more properly fix handTouch.js in a future PR, but for now we will disable the functionality.
Also, a small bug fix was made to the Rig to prevent the idleOverlayAlpha from exceeding the 0.0 to 1.0 range.
This can cause the fingers to bend incorrectly for a moment.
Also, three new items were added to the Developer > Show Animation Stats panel.
* Joint Override Count: displays the current count of joints that are overriden by MyAvatar.setJointRotation() JS API calls.
* Flow: displays if flow is active of disabled.
* Network Graph: displays if the network anim graph, used for teleportation, is enabled or disabled.
https://highfidelity.atlassian.net/browse/BUGZ-154