When programming touch within an application that is potentially running on a system with other touch based applications, it's possible for conflicts to arise.
For our own utility touch applications, that could all be running at the same time, whereby it makes sense that only one application should be processing touch at any given time, we use an undocumented internal priority setting, such that the one with the lowest priority gets exclusive access to UPDD's API.
We have allocated UPDD test to be the highest priority, followed by our Annotation program and then UPDD Commander.
Currently, this setting is for internal use only, but if either of these three applications are running, it will block touch events being sent to other client applications.
Given that most macOS touch systems utilise UPDD Commander, most conflicts can occur between Commander processing touches and end user touch client apps.
In this case, you need to consider if Commander is required in your environment, or if you need to configure your touch application within Commander to avoid duplicating touch processing whilst touching within your application.
If standard gesture processing is not required within your application, you can either:
- Use a software build that does not contain Commander.
- Stop Commander and /or prevent it from automatically starting at system boot up.
- Disable Commander processing using the 'Master kill' global setting in the settings dialog, available since version 1.7.0, issued 23rd Aug 2024.
- Remove all gesture processing definitions within Commander and replace it with a single “Pass all touches to UPDD client app” gesture.
If Commander is required for other system and application touch processing, then Commander must be configured to cater for specific touch applications and to pass touch events to the Application.
In this situation, you can add your UPDD Client application to Commander and associate a “Pass all touches to UPDD client” gesture to the application, so that all touches that fall within the application get passed along to it via the UPDD API.
This allows for any touches/gestures outside the application to be processed as normal by Commander.
When configuring and application in this way, you should be mindful of which UI elements are configured under the application in Commander and set up gestures in those as appropriate. You may, for example, want to keep the default gestures in Commander so that touches will scroll a scrollable area as is the default behaviour, or you may want to remove all of those gestures and just assign “Pass all touches to UPDD client” for all UI elements as well.
Custom Touch Controls
If an application, or parts of an application UI, is implementing custom touch controls, it is important to consider that external generic touch mouse emulation software is not active on the custom control at the same time as the application is also handling the touch. When using UPDD software, the UPDD Commander function can be used to disable touches being processed on top of specific applications or UI elements within the application such that external touches do not interfere with custom touches within the application.