RESOLVED FIXED 35691
[Chromium] Adding new platform types for touch events and touch points.
https://bugs.webkit.org/show_bug.cgi?id=35691
Summary [Chromium] Adding new platform types for touch events and touch points.
Garret Kelly
Reported 2010-03-03 10:56:12 PST
The Chromium WebKit needs the requisite platform types to allow for touch events to be transferred into WebKit, which this feature adds. This is the first of several patches to incorporate touch event support into Chromium.
Attachments
Initial patch (4.67 KB, patch)
2010-03-03 10:57 PST, Garret Kelly
no flags
Removed extraneous include (4.65 KB, patch)
2010-03-03 11:11 PST, Garret Kelly
fishd: review-
Review fixes (4.59 KB, patch)
2010-03-03 13:59 PST, Garret Kelly
no flags
Second-round review fixes (4.60 KB, patch)
2010-03-03 15:52 PST, Garret Kelly
fishd: review-
Third-round review fixes (4.54 KB, patch)
2010-03-03 16:03 PST, Garret Kelly
no flags
Garret Kelly
Comment 1 2010-03-03 10:57:47 PST
Created attachment 49921 [details] Initial patch
Garret Kelly
Comment 2 2010-03-03 11:11:12 PST
Created attachment 49923 [details] Removed extraneous include
Darin Fisher (:fishd, Google)
Comment 3 2010-03-03 13:31:23 PST
Comment on attachment 49923 [details] Removed extraneous include > +++ b/WebKit/chromium/public/WebInputEvent.h > > +// WebTouchEvent -------------------------------------------------------------- > + > +class WebTouchEvent : public WebInputEvent { > +public: > + static const int touchPointCountCap = 4; nit: CountCap -> LengthCap for consistency with WebKeyboardEvent > + > + int modifiers; > + int touchPointCount; > + WebTouchPoint touchPoints[touchPointCountCap]; Is touchPointCount necessary? Perhaps you could use touchPoints[i].state == WebTouchPoint::Undefined as an array terminator instead? WebInputEvent already defines a modifiers member var, so I'm surprised to see it repeated here. > +++ b/WebKit/chromium/public/WebTouchPoint.h ... > +#include <string.h> ^^^ this include seems unnecessary > +namespace WebKit { > + > +class WebTouchPoint { > +public: > + WebTouchPoint() > + : id(0) > + , state(Undefined) > + , screenPosition(0, 0) > + , position(0, 0) { } > + > + enum State { > + Undefined, > + TouchReleased, > + TouchPressed, > + TouchMoved, > + TouchStationary, > + TouchCancelled, How about StateReleased, StatePressed, etc. to better match the name of the enum? Since these enum values will primarily be written w/ the WebTouchPoint prefix, it seems unnecessary to have the word "Touch" in the names of the enum values.
Garret Kelly
Comment 4 2010-03-03 13:58:32 PST
(In reply to comment #3) > (From update of attachment 49923 [details]) > > +++ b/WebKit/chromium/public/WebInputEvent.h > > > > +// WebTouchEvent -------------------------------------------------------------- > > + > > +class WebTouchEvent : public WebInputEvent { > > +public: > > + static const int touchPointCountCap = 4; > > nit: CountCap -> LengthCap for consistency with WebKeyboardEvent Done. > > > + > > + int modifiers; > > + int touchPointCount; > > + WebTouchPoint touchPoints[touchPointCountCap]; > > Is touchPointCount necessary? Perhaps you could use > touchPoints[i].state == WebTouchPoint::Undefined as > an array terminator instead? That'd require using up a WebTouchPoint entry in the array just to indicate the total length. For the sake of space it seems better to stick with the touchPointCount. > WebInputEvent already defines a modifiers member var, > so I'm surprised to see it repeated here. Removed. > > > +++ b/WebKit/chromium/public/WebTouchPoint.h > ... > > +#include <string.h> > > ^^^ this include seems unnecessary Entirely. I'm baffled as to why I put that there. Removed. :) > > > +namespace WebKit { > > + > > +class WebTouchPoint { > > +public: > > + WebTouchPoint() > > + : id(0) > > + , state(Undefined) > > + , screenPosition(0, 0) > > + , position(0, 0) { } > > + > > + enum State { > > + Undefined, > > + TouchReleased, > > + TouchPressed, > > + TouchMoved, > > + TouchStationary, > > + TouchCancelled, > > How about StateReleased, StatePressed, etc. to better > match the name of the enum? > > Since these enum values will primarily be written w/ > the WebTouchPoint prefix, it seems unnecessary to have > the word "Touch" in the names of the enum values. Very sensible. Done. Also renamed Undefined -> StateUndefined. Thank you very much for the comments. :)
Garret Kelly
Comment 5 2010-03-03 13:59:31 PST
Created attachment 49942 [details] Review fixes
Darin Fisher (:fishd, Google)
Comment 6 2010-03-03 15:34:21 PST
What it the use case for StateUndefined if not to terminate the array? Can you have a WebTouchPoint that is undefined and have the other fields contain meaningful data? It is OK to have the terminator be optional. All fields could contain data, or some of them could contain StateUndefined to indicate that they are unused. Maybe that is less clear though.
Garret Kelly
Comment 7 2010-03-03 15:52:43 PST
Created attachment 49958 [details] Second-round review fixes
Darin Fisher (:fishd, Google)
Comment 8 2010-03-03 15:56:03 PST
Comment on attachment 49958 [details] Second-round review fixes > +class WebTouchPoint { > +public: > + WebTouchPoint() > + : id(0) > + , state(StateUndefined) > + , screenPosition(0, 0) > + , position(0, 0) { } minor nit: no need to initialize a WebPoint explicitly. just let the default constructor do its thing. otherwise, r=me
Garret Kelly
Comment 9 2010-03-03 16:03:15 PST
Created attachment 49959 [details] Third-round review fixes
WebKit Commit Bot
Comment 10 2010-03-04 00:01:45 PST
Comment on attachment 49959 [details] Third-round review fixes Clearing flags on attachment: 49959 Committed r55507: <http://trac.webkit.org/changeset/55507>
WebKit Commit Bot
Comment 11 2010-03-04 00:01:50 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.