Changeset 117218 in webkit


Ignore:
Timestamp:
May 15, 2012 10:06:31 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[EFL][DRT] Fix eventSender key providing
https://bugs.webkit.org/show_bug.cgi?id=84710

Patch by Kangil Han <kangil.han@samsung.com> on 2012-05-15
Reviewed by Andreas Kling.

Currently eventSender doesn't provide key event correctly.
For example, 'Right' will be visible when 'right arrow' key event is fired.
Given circumstance, nothing has to be shown.
Therefore, this patch fixed incorrectly provided key event.

Tools:

  • DumpRenderTree/efl/EventSender.cpp:

(KeyEventInfo::KeyEventInfo):
(KeyEventInfo):
(keyPadNameFromJSValue):
(keyNameFromJSValue):
(createKeyEventInfo):
(sendKeyDown):

LayoutTests:

  • platform/efl/Skipped:
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r117217 r117218  
     12012-05-15  Kangil Han  <kangil.han@samsung.com>
     2
     3        [EFL][DRT] Fix eventSender key providing
     4        https://bugs.webkit.org/show_bug.cgi?id=84710
     5
     6        Reviewed by Andreas Kling.
     7
     8        Currently eventSender doesn't provide key event correctly.
     9        For example, 'Right' will be visible when 'right arrow' key event is fired.
     10        Given circumstance, nothing has to be shown.
     11        Therefore, this patch fixed incorrectly provided key event.
     12
     13        * platform/efl/Skipped:
     14
    1152012-05-15  Kenichi Ishibashi  <bashi@chromium.org>
    216
  • trunk/LayoutTests/platform/efl/Skipped

    r117205 r117218  
    178178# EFL's DRT needs a PlainTextController implementation
    179179editing/text-iterator/basic-iteration.html
    180 
    181 # EFL's DRT key down bug
    182 # https://bugs.webkit.org/show_bug.cgi?id=84710
    183 editing/input/password-echo-passnode.html
    184 editing/input/password-echo-passnode2.html
    185180
    186181# EFL's LayoutTestController does not implement setMediaType
  • trunk/Tools/ChangeLog

    r117215 r117218  
     12012-05-15  Kangil Han  <kangil.han@samsung.com>
     2
     3        [EFL][DRT] Fix eventSender key providing
     4        https://bugs.webkit.org/show_bug.cgi?id=84710
     5
     6        Reviewed by Andreas Kling.
     7
     8        Currently eventSender doesn't provide key event correctly.
     9        For example, 'Right' will be visible when 'right arrow' key event is fired.
     10        Given circumstance, nothing has to be shown.
     11        Therefore, this patch fixed incorrectly provided key event.
     12
     13        * DumpRenderTree/efl/EventSender.cpp:
     14        (KeyEventInfo::KeyEventInfo):
     15        (KeyEventInfo):
     16        (keyPadNameFromJSValue):
     17        (keyNameFromJSValue):
     18        (createKeyEventInfo):
     19        (sendKeyDown):
     20
    1212012-05-15  Dan Bernstein  <mitz@apple.com>
    222
  • trunk/Tools/DumpRenderTree/efl/EventSender.cpp

    r116639 r117218  
    110110
    111111struct KeyEventInfo {
    112     KeyEventInfo(const CString& keyName, EvasKeyModifier modifiers)
     112    KeyEventInfo(const CString& keyName, const CString& keyString, EvasKeyModifier modifiers)
    113113        : keyName(keyName)
     114        , keyString(keyString)
    114115        , modifiers(modifiers)
    115116    {
     
    117118
    118119    const CString keyName;
     120    const CString keyString;
    119121    EvasKeyModifier modifiers;
    120122};
     
    361363}
    362364
    363 static const CString keyPadNameFromJSValue(JSStringRef character)
     365static KeyEventInfo* keyPadNameFromJSValue(JSStringRef character, EvasKeyModifier modifiers)
    364366{
    365367    if (equals(character, "leftArrow"))
    366         return "KP_Left";
     368        return new KeyEventInfo("KP_Left", "", modifiers);
    367369    if (equals(character, "rightArrow"))
    368         return "KP_Right";
     370        return new KeyEventInfo("KP_Right", "", modifiers);
    369371    if (equals(character, "upArrow"))
    370         return "KP_Up";
     372        return new KeyEventInfo("KP_Up", "", modifiers);
    371373    if (equals(character, "downArrow"))
    372         return "KP_Down";
     374        return new KeyEventInfo("KP_Down", "", modifiers);
    373375    if (equals(character, "pageUp"))
    374         return "KP_Prior";
     376        return new KeyEventInfo("KP_Prior", "", modifiers);
    375377    if (equals(character, "pageDown"))
    376         return "KP_Next";
     378        return new KeyEventInfo("KP_Next", "", modifiers);
    377379    if (equals(character, "home"))
    378         return "KP_Home";
     380        return new KeyEventInfo("KP_Home", "", modifiers);
    379381    if (equals(character, "end"))
    380         return "KP_End";
     382        return new KeyEventInfo("KP_End", "", modifiers);
    381383    if (equals(character, "insert"))
    382         return "KP_Insert";
     384        return new KeyEventInfo("KP_Insert", "", modifiers);
    383385    if (equals(character, "delete"))
    384         return "KP_Delete";
    385 
    386     return character->ustring().utf8();
    387 }
    388 
    389 static const CString keyNameFromJSValue(JSStringRef character)
     386        return new KeyEventInfo("KP_Delete", "", modifiers);
     387
     388    return new KeyEventInfo(character->ustring().utf8(), character->ustring().utf8(), modifiers);
     389}
     390
     391static KeyEventInfo* keyNameFromJSValue(JSStringRef character, EvasKeyModifier modifiers)
    390392{
    391393    if (equals(character, "leftArrow"))
    392         return "Left";
     394        return new KeyEventInfo("Left", "", modifiers);
    393395    if (equals(character, "rightArrow"))
    394         return "Right";
     396        return new KeyEventInfo("Right", "", modifiers);
    395397    if (equals(character, "upArrow"))
    396         return "Up";
     398        return new KeyEventInfo("Up", "", modifiers);
    397399    if (equals(character, "downArrow"))
    398         return "Down";
     400        return new KeyEventInfo("Down", "", modifiers);
    399401    if (equals(character, "pageUp"))
    400         return "Prior";
     402        return new KeyEventInfo("Prior", "", modifiers);
    401403    if (equals(character, "pageDown"))
    402         return "Next";
     404        return new KeyEventInfo("Next", "", modifiers);
    403405    if (equals(character, "home"))
    404         return "Home";
     406        return new KeyEventInfo("Home", "", modifiers);
    405407    if (equals(character, "end"))
    406         return "End";
     408        return new KeyEventInfo("End", "", modifiers);
    407409    if (equals(character, "insert"))
    408         return "Insert";
     410        return new KeyEventInfo("Insert", "", modifiers);
    409411    if (equals(character, "delete"))
    410         return "Delete";
     412        return new KeyEventInfo("Delete", "", modifiers);
    411413    if (equals(character, "printScreen"))
    412         return "Print";
     414        return new KeyEventInfo("Print", "", modifiers);
    413415    if (equals(character, "menu"))
    414         return "Menu";
     416        return new KeyEventInfo("Menu", "", modifiers);
    415417    if (equals(character, "F1"))
    416         return "F1";
     418        return new KeyEventInfo("F1", "", modifiers);
    417419    if (equals(character, "F2"))
    418         return "F2";
     420        return new KeyEventInfo("F2", "", modifiers);
    419421    if (equals(character, "F3"))
    420         return "F3";
     422        return new KeyEventInfo("F3", "", modifiers);
    421423    if (equals(character, "F4"))
    422         return "F4";
     424        return new KeyEventInfo("F4", "", modifiers);
    423425    if (equals(character, "F5"))
    424         return "F5";
     426        return new KeyEventInfo("F5", "", modifiers);
    425427    if (equals(character, "F6"))
    426         return "F6";
     428        return new KeyEventInfo("F6", "", modifiers);
    427429    if (equals(character, "F7"))
    428         return "F7";
     430        return new KeyEventInfo("F7", "", modifiers);
    429431    if (equals(character, "F8"))
    430         return "F8";
     432        return new KeyEventInfo("F8", "", modifiers);
    431433    if (equals(character, "F9"))
    432         return "F9";
     434        return new KeyEventInfo("F9", "", modifiers);
    433435    if (equals(character, "F10"))
    434         return "F10";
     436        return new KeyEventInfo("F10", "", modifiers);
    435437    if (equals(character, "F11"))
    436         return "F11";
     438        return new KeyEventInfo("F11", "", modifiers);
    437439    if (equals(character, "F12"))
    438         return "F12";
     440        return new KeyEventInfo("F12", "", modifiers);
    439441
    440442    int charCode = JSStringGetCharactersPtr(character)[0];
    441443    if (charCode == '\n' || charCode == '\r')
    442         return "Return";
     444        return new KeyEventInfo("Return", "Return", modifiers);
    443445    if (charCode == '\t')
    444         return "Tab";
     446        return new KeyEventInfo("Tab", "Tab", modifiers);
    445447    if (charCode == '\x8')
    446         return "BackSpace";
     448        return new KeyEventInfo("BackSpace", "BackSpace", modifiers);
    447449    if (charCode == ' ')
    448         return "space";
    449 
    450     return character->ustring().utf8();
     450        return new KeyEventInfo("space", " ", modifiers);
     451
     452    return new KeyEventInfo(character->ustring().utf8(), character->ustring().utf8(), modifiers);
    451453}
    452454
     
    472474        modifiers = modifiersFromJSValue(context, arguments[1]);
    473475
    474     const CString keyName = (location == DomKeyLocationNumpad) ? keyPadNameFromJSValue(character.get()) : keyNameFromJSValue(character.get());
    475     return new KeyEventInfo(keyName, modifiers);
     476    return (location == DomKeyLocationNumpad) ? keyPadNameFromJSValue(character.get(), modifiers) : keyNameFromJSValue(character.get(), modifiers);
    476477}
    477478
     
    482483
    483484    const char* keyName = keyEventInfo->keyName.data();
     485    const char* keyString = keyEventInfo->keyString.data();
    484486    EvasKeyModifier modifiers = keyEventInfo->modifiers;
    485487
     
    488490    ASSERT(evas);
    489491    setEvasModifiers(evas, modifiers);
    490     evas_event_feed_key_down(evas, keyName, keyName, keyName, 0, 0, 0);
    491     evas_event_feed_key_up(evas, keyName, keyName, keyName, 0, 1, 0);
     492    evas_event_feed_key_down(evas, keyName, keyName, keyString, 0, 0, 0);
     493    evas_event_feed_key_up(evas, keyName, keyName, keyString, 0, 1, 0);
    492494    setEvasModifiers(evas, EvasKeyModifierNone);
    493495
Note: See TracChangeset for help on using the changeset viewer.