I have a Dell convertible laptop that has a built-in mouse pad plus a 10-point touch enabled screen that can be folded around to turn into a tablet (http://www.dell.com/us/p/xps-12-l221x/pd)
We are trying to get our software fully touch enabled, however the PopupMenu class is not touch friendly. There are two main issues. Currently it uses the mouse’s location (not where you touched) as a default menu location. I can fix that problem by specifying the popup menu location instead of using the default, of course. The bigger issue is that popup menus can not be selected or closed by touch, only by using the mouse. The TimerCallback() method explicitly uses the current mouse location, which gets called from any mouseMove(), mouseDown(), mouseDrag() or mouseUp().
I’ve been working on this for a while now with some progress, but I haven’t completely solved it yet. Touch inputs are handled and translated into corresponding mouse methods, but inside TimerCallback() I loop through the array of mouse sources and often their location data never changes regardless of where I touch on the screen.
Has anyone solved this yet, and if not, what is the best way to make the popup menu class fully touch enabled so that I can use my laptop in tablet form with no mouse at all to select menu options by touch and also touch outside the menu to make them close?