Properly special case first single touch; fall
back to allow windows to emulate mouse events for it.
Yet let gdk handle any multi-touch events, not allowing gestures.
* Fix special case of first single touch. While another touch
is active, any new touch must not get the ID of the (ignored)
first touch.
* reset "last-touch" coordinate on touch-begin.
Previously it was possible that the first motion event was
ignored.
NB: This does not fix missing events when the first touch
coincides with any other finger (gesture?).
Found via `codespell -q 3 -S "*.pdf,*.po,./.git,*.tosc,./waf,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch" -L acount,addin,ane,ba,buss,busses,caf,capela,devine,disconnectin,discreet,doubleclick,envolution,filetest,fo,ghandi,homs,hsi,layed,maschine,mis,nd,ontop,pass-thru,removeable,retrn,ro,scrollin,sectionin,seh,siz,sord,sur,te,trough,ue,wth`
route_by_name() may not find a track created with a given
name, if that name contains illegal chars that were replaced,
or if the track-name was otherwise changed (number suffix) to
make it unique.
This broke in f67029bd0 and notably bcc1aeeb86.
next_tick needs to accommodate for sub-sample accuracy when
PPQN are not integer samples. e.g. 110 bpm @ 48kHz
PS. Instead of `double` we could use superclock next_tick, and
`one_ppqn_in_superclocks` respectively. This would provide us
with 62 bit significand (instead of 52 bit using double).
Yet for the case of MIDI clock, this will have no real world
effect.
The CmdPipeWriter::Terminated signal is used to trigger the FileWritten
callback, which invokes ExportGraphBuilder::Encoder::copy_files
Encoder::filenames must not be destroyed before the callback
arrives. This is now guaranteed by the Encoder d'tor waiting
for for the encode process to terminate.
X11 emulates MotionEvents for the 1st finger on a touch-screen
(no explicit touch events are sent) IFF the pointer is grabbed.
So let's do that.
Note 1st finger touch uncnditionally creates press and release events