So the first tap would often open the city dialog, which wasn't expected.
Oh, right.
In android it is possible to differentiate them by using what they call a "confirmed single tap", waiting to see if there is a 2nd click or not, but I guess it is not good to introduce a delay here.
I think my suggested controls would be still playable without the double click, as long as it is possible to scroll the view.
I can't think of any desktop application using "hold" to initiate an action.
I think it can be intuitive for desktop users as long as "hold" triggers the same action than "drag". I tried to differentiate both actions, because in gtk2 client you need to drag (click and move) in order to trigger the goto, while in sdl you just need to hold (long click), something that I find more comfortable.
Let me another suggestion, designed for 2 button mouse, similar to current clients, and improved to allow the selection of units inside cities without opening the city dialog:
Left Button
- tap (on own city): open City dialog. (same than GTK and SDL)
- tap (on own unit): open Unit dialog, or select unit if alone. (same than GTK and SDL)
- hold: open Context menu. (similar to the Web client menu, or a circular menu like other suggested in this topic)
On city with units, it could be useful to open directly the Unit dialog instead of the Context menu.
- drag (from tile without own units, or tile with units already selected): start goto for selected units, and move at release. (same than GTK and SDL)
- drag (from tile with own units not selected): select first unit in the stack (if any), start goto, and move at release. (New)
Right Button
- tap: center view (same than GTK and SDL)
- hold: shows tile info (same than middle button in GTK)
- drag: draws a rectangle and selects all units inside (same than GTK)