Switch canvas over to using event controllers
A lite version of !4959 (closed), hopefully with less breakage.
Here I simply make the smallest possible first step - changing the source of the canvas's events from virtual functions to event controller signals.
Differences from !4959 (closed):
- Original
GdkEvent
s are used, not synthesised ones. - Extra clicks before double/triple clicks are emulated.
- Use click gesture's release signal rather than drag gesture's end signal to detect button release events.