Changeset 55309 in webkit


Ignore:
Timestamp:
Feb 26, 2010 1:48:19 PM (14 years ago)
Author:
tonikitoo@webkit.org
Message:

[Gtk] Make DRT EventSender::keyDown to consider 'hardware_keycode' field when synthesizing an event.
https://bugs.webkit.org/show_bug.cgi?id=35432

Patch by Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Gustavo Noronha.

When a directional key-press event (arrow keys, End, Home, PageUp,
PageDown, etc) is synthesized by DRT's EventSender and it targets
an editor (e.g. <input type=text>, <textare>, etc), event is processed
by WebCore::EventHandler. On the other hand, if event target is not
an editor, event is bubbled up to Gtk+ for processing. In such cases,
if 'hardware_keycode' is not provided at event synthesize time
its processing fails (at some point in gtk_bindings_activate_event),
and no scroll action is performed.

Unskip fast/events/node-event-anchor-lock.html

  • DumpRenderTree/win/EventSender.cpp:

(keyDownCallback):

  • platform/gtk/Skipped:
Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/platform/gtk/Skipped

    r55279 r55309  
    54815481http/tests/security/window-events-pass.html
    54825482
    5483 # https://bugs.webkit.org/show_bug.cgi?id=30587
    5484 fast/events/node-event-anchor-lock.html
    5485 
    54865483# Probably related to https://bugs.webkit.org/show_bug.cgi?id=27637
    54875484http/tests/security/mixedContent/insecure-plugin-in-iframe.html
  • trunk/WebKitTools/ChangeLog

    r55292 r55309  
     12010-02-26  Antonio Gomes  <tonikitoo@webkit.org>
     2
     3        Reviewed by Gustavo Noronha.
     4        Patch by Antonio Gomes <tonikitoo@webkit.org>
     5
     6        [Gtk] Make DRT EventSender::keyDown to consider 'hardware_keycode' field when synthesizing an event.
     7        https://bugs.webkit.org/show_bug.cgi?id=35432
     8
     9        When a directional key-press event (arrow keys, End, Home, PageUp,
     10        PageDown, etc) is synthesized by DRT's EventSender and it targets
     11        an editor (e.g. <input type=text>, <textare>, etc), event is processed
     12        by WebCore::EventHandler. On the other hand, if event target is not
     13        an editor, event is bubbled up to Gtk+ for processing. In such cases,
     14        if 'hardware_keycode' is not provided at event synthesize time
     15        its processing fails (at some point in gtk_bindings_activate_event),
     16        and no scroll action is performed.
     17
     18        Unskip fast/events/node-event-anchor-lock.html
     19
     20        * DumpRenderTree/win/EventSender.cpp:
     21        (keyDownCallback):
     22        * platform/gtk/Skipped:
     23
    1242010-02-26  Dimitri Glazkov  <dglazkov@chromium.org>
    225
  • trunk/WebKitTools/DumpRenderTree/gtk/EventSender.cpp

    r53942 r55309  
    558558    event.key.window = GTK_WIDGET(view)->window;
    559559
     560    // When synthesizing an event, an invalid hardware_keycode value
     561    // can cause it to be badly processed by Gtk+.
     562    GdkKeymapKey* keys;
     563    gint n_keys;
     564    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), gdkKeySym, &keys, &n_keys)) {
     565        event.key.hardware_keycode = keys[0].keycode;
     566        g_free(keys);
     567    }
     568
    560569    gboolean return_val;
    561570    event.key.type = GDK_KEY_PRESS;
     571
    562572    g_signal_emit_by_name(view, "key-press-event", &event.key, &return_val);
    563573
Note: See TracChangeset for help on using the changeset viewer.