If we just needs new coordinates, couldn't we extend the existing event interfaces with some new properties?
-Olli On 09/12/2014 12:52 AM, smaug wrote: > What would be the event types for touchpad events? > We must not add yet another types of events to handle pointer type of events. > > > And besides, touch event model is rather horrible, so if we for some strange > reason need > totally new events, I'd prefer using something closer to pointer events. > > > -Olli > > > > > On 09/11/2014 09:18 AM, Kershaw Chang wrote: >> Hi All, >> >> Summary: >> Touchpad(trackpad) is a common feature on laptop computers. Currently, the >> finger activities on touchpad are translated to touch event and mouse event. >> However, the coordinates of touch event and mouse event are actually >> associated to display [1]. For some cases, we need to expose the absolute >> coordinates that are associated to touchpad itself to the application. >> That’s why AOSP also defines another input source type for touchpad [2]. The >> x and y coordinates of touchpad event are relative to the size of touchpad. >> >> Use case: >> Handwriting recognition application will be benefited from this touchpad >> event. Currently, OS X supports handwriting input by touchpad [3]. >> >> Idea of implementation: >> The webidl of touchpad event is like touch event except that x and y >> coordinates are relative to touchpad rather than display. >> >> --- /dev/null >> +++ b/dom/webidl/Touchpad.webidl >> + >> +[Func="mozilla::dom::Touchpad::PrefEnabled"] >> +interface Touchpad { >> + readonly attribute long identifier; >> + readonly attribute EventTarget? target; >> + readonly attribute long touchpadX; >> + readonly attribute long touchpadY; >> + readonly attribute long radiusX; >> + readonly attribute long radiusY; >> + readonly attribute float rotationAngle; >> + readonly attribute float force; >> +}; >> >> --- /dev/null >> +++ b/dom/webidl/TouchpadEvent.webidl >> + >> +interface WindowProxy; >> + >> +[Func="mozilla::dom::TouchpadEvent::PrefEnabled"] >> +interface TouchPadEvent : UIEvent { >> + readonly attribute TouchpadList touches; >> + readonly attribute TouchpadList targetTouches; >> + readonly attribute TouchpadList changedTouches; >> + >> + readonly attribute short button; >> + readonly attribute boolean altKey; >> + readonly attribute boolean metaKey; >> + readonly attribute boolean ctrlKey; >> + readonly attribute boolean shiftKey; >> + >> + [Throws] >> + void initTouchpadEvent(DOMString type, >> + boolean canBubble, >> + boolean cancelable, >> + WindowProxy? view, >> + long detail, >> + short button, >> + boolean ctrlKey, >> + boolean altKey, >> + boolean shiftKey, >> + boolean metaKey, >> + TouchPadList? touches, >> + TouchPadList? targetTouches, >> + TouchPadList? changedTouches); >> +}; >> >> --- /dev/null >> +++ b/dom/webidl/TouchpadList.webidl >> + >> +[Func="mozilla::dom::TouchpadList::PrefEnabled"] >> +interface TouchpadList { >> + [Pure] >> + readonly attribute unsigned long length; >> + getter Touchpad? item(unsigned long index); >> +}; >> + >> +/* Mozilla extension. */ >> +partial interface TouchpadList { >> + Touchpad? identifiedTouch(long identifier); >> +}; >> >> Platform converge: all >> >> Welcome for any suggestion or feedback. >> Thanks. >> >> [1] >> http://developer.android.com/reference/android/view/InputDevice.html#SOURCE_ >> CLASS_POINTER >> [2] >> http://developer.android.com/reference/android/view/InputDevice.html#SOURCE_ >> CLASS_POSITION >> [3] http://support.apple.com/kb/HT4288 >> >> Best regards, >> Kershaw >> >> > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform