Hi Kershaw,

Has there been any discussions with other browser vendors about this
API? Or is there an official standard somewhere for them?

If not, I don't think that we'll want to expose this to the web at
large. It would still be fine to expose to certified apps, or even to
expose to privileged apps under a permission.

Does this sound ok?

/ Jonas

On Wed, Sep 10, 2014 at 11:18 PM, Kershaw Chang <kech...@mozilla.com> 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-webapi mailing list
> dev-web...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-webapi
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to