Pointer (mouse/touch/pointer) events community coordination attempt
(too old to reply)
Matthieu Pizenberg
2017-11-30 08:06:45 UTC
PS: duplicate of reddit for people not using reddit

Hi folks,

I've been browsing the elm packages repository in search of packages
dealing with pointer events in general, mouse / touch / pointer. My
conclusion is that we are all doing more or less the same things over and
over. The timeline is the following:

First publication:

* 2016-08: knledg/touch-events
* 2016-10: mbr/elm-mouse-events
* 2016-11: mpizenberg/elm-touch-events
* 2017-05: mpizenberg/elm-mouse-events
* 2017-06: Elm-Canvas/element-relative-mouse-events
* 2017-07: zwilias/elm-touch-events
* 2017-10: mpizenberg/elm-pointer-events

Last update:

* 2017-05: 1.0.4 of mbr/elm-mouse/events
* 2017-05: 2.1.2 of knledg/touch-events
* 2017-06: 3.0.1 of mpizenberg/elm-touch-events
* 2017-06: 1.0.0 of Elm-Canvas/element-relative-mouse-events
* 2017-10: 1.0.4 of mpizenberg/elm-pointer-events
* 2017-11: 1.1.1 of mpizenberg/elm-mouse-events
* 2017-11: 1.1.0 of zwilias/elm-touch-events

As you can see, I'm partially (mpizenberg) responsible for starting
additional mouse and touch packages. Of course, I had reasons to do so at
the time, but now, I feel that it would be a good time to coordinate and
have a united approach before the switch to 0.19.

To start this coordinating discussion, if you have been using some of
these, could you explain why? for what needs? Please provide examples if
possible. I will start with myself.

* *mpizenberg/elm-touch-events*:
That's the first package I created. I needed multitouch support, which
was not available in knledg/touch-events.
* *mpizenberg/elm-mouse-events*:
My main need was to get the reliable relative positions of mouse move
events, the most efficient way possible. It meant using the
"offsetX/offsetY" properties of mouse events, which are not exposed by
mbr/elm-mouse-events. Example usage was a user study, demo still available
at http://mm17-otis.pizenberg.fr .
* *mpizenberg/elm-pointer-events*:
Eventually, after having implemented both mouse and touch behaviors for
each of my projects, I got tired of doing the job twice each time. So this
library is to support the web pointer events API, that inherit from mouse
events but support mouse, touch, and others (pens, ...) pointer events.
Unfortunately, the API is not well supported by Safari and Firefox yet
(https://caniuse.com/#feat=pointer) so I also made a minimalist polyfill,
compatible with elm (https://github.com/mpizenberg/elm-pep). Example usage
at http://elm-image-annotation.pizenberg.fr/ (code at
You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.