Bug 36003

Summary: Enhance GTK DRT implementation to support platform scroll wheel events.
Product: WebKit Reporter: Andy Estes <aestes@apple.com>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned@lists.webkit.org>
Status: RESOLVED FIXED    
Severity: Enhancement CC: aestes@apple.com, jdapena@igalia.com, mrobinson@webkit.org, pnormand@igalia.com, zandobersek@gmail.com
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Bug Depends on:    
Bug Blocks: 88070    
Attachments:
Description Flags
Patch mrobinson: review-

Description From 2010-03-10 21:58:02 PST
DRT layout tests gained the ability to simulate mouse scroll wheel events in http://trac.webkit.org/changeset/55739.  Currently this is only supported on Mac OS 10.5 and 10.6.  The GTK DRT implementation should be enhanced to dispatch scroll wheel events, and layout tests that utilize this functionality should be removed from the Skipped file.
------- Comment #1 From 2012-06-06 07:05:27 PST -------
Created an attachment (id=146016) [details]
Patch
------- Comment #2 From 2012-06-26 12:07:13 PST -------
CC-ing reviewers to have a look at the patch.
------- Comment #3 From 2012-06-26 13:04:20 PST -------
(From update of attachment 146016 [details])
View in context: https://bugs.webkit.org/attachment.cgi?id=146016&action=review

Looks good, just a few style nits. Can't we unskip some tests now?

> Tools/DumpRenderTree/gtk/EventSender.cpp:483
> +    int horizontal = (int)JSValueToNumber(context, arguments[0], exception);
> +    g_return_val_if_fail((!exception || !*exception), JSValueMakeUndefined(context));
> +    int vertical = (int)JSValueToNumber(context, arguments[1], exception);
> +    g_return_val_if_fail((!exception || !*exception), JSValueMakeUndefined(context));

You should use static_cast here instead of C-style casts. Is it possible to just elminate the cast entirely here?

> Tools/DumpRenderTree/gtk/EventSender.cpp:487
> +    gboolean paged = false;
> +    if (argumentCount == 3) {
> +        paged = JSValueToBoolean(context, arguments[2]);

bool intead of gboolean would be more appropriate here. Why does paged need to be defined in outer scope? Seems like this could just be:

g_return_val_if_fail(argumentcount < 3 || !JSValueToBoolean(context, arguments[2]), JSValueMakeUndefined(context));
------- Comment #4 From 2012-09-07 08:16:54 PST -------
Fix for #88070 already includes the implementation of DumpRenderTree smooth scroll wheel events for Gtk.