Changeset 34259 in webkit


Ignore:
Timestamp:
May 30, 2008 3:08:31 AM (16 years ago)
Author:
ap@webkit.org
Message:

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=7466
<rdar://problem/4657563> Use of Ctrl as access key modifier conflicts with Mac OS X
emacs-style keybindings

WebCore:

  • page/EventHandler.cpp: (WebCore::EventHandler::handleAccessKey): Use Ctrl+Option for access keys on Mac OS X.

LayoutTests:

  • fast/events/access-key-self-destruct.html:
  • fast/forms/access-key.html:
  • fast/forms/focus-selection-input-expected.txt:
  • fast/forms/focus-selection-input.html:
  • fast/forms/legend-access-key.html:
  • fast/forms/select-accesskey.html: Updated tests to keep passing.
  • fast/forms/select-accesskey-expected.txt: Added.
  • fast/forms/select-accesskey.html:
  • platform/mac/fast/forms/select-accesskey-expected.checksum: Removed.
  • platform/mac/fast/forms/select-accesskey-expected.png: Removed.
  • platform/mac/fast/forms/select-accesskey-expected.txt: Removed. Updated to keep passing, made text-only.
  • fast/forms/focus-selection-textarea.html:
  • fast/forms/focus-selection-textarea-expected.txt: Added missing platform-specific logic.
Location:
trunk
Files:
1 added
3 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r34250 r34259  
     12008-05-30  Alexey Proskuryakov  <ap@webkit.org>
     2
     3        Reviewed by Darin.
     4
     5        http://bugs.webkit.org/show_bug.cgi?id=7466
     6        <rdar://problem/4657563> Use of Ctrl as access key modifier conflicts with Mac OS X
     7        emacs-style keybindings
     8
     9        * fast/events/access-key-self-destruct.html:
     10        * fast/forms/access-key.html:
     11        * fast/forms/focus-selection-input-expected.txt:
     12        * fast/forms/focus-selection-input.html:
     13        * fast/forms/legend-access-key.html:
     14        * fast/forms/select-accesskey.html:
     15        Updated tests to keep passing.
     16
     17        * fast/forms/select-accesskey-expected.txt: Added.
     18        * fast/forms/select-accesskey.html:
     19        * platform/mac/fast/forms/select-accesskey-expected.checksum: Removed.
     20        * platform/mac/fast/forms/select-accesskey-expected.png: Removed.
     21        * platform/mac/fast/forms/select-accesskey-expected.txt: Removed.
     22        Updated to keep passing, made text-only.
     23
     24        * fast/forms/focus-selection-textarea.html:
     25        * fast/forms/focus-selection-textarea-expected.txt:
     26        Added missing platform-specific logic.
     27
    1282008-05-29  Maciej Stachowiak  <mjs@apple.com>
    229
  • trunk/LayoutTests/fast/events/access-key-self-destruct.html

    r28620 r34259  
    99        layoutTestController.dumpAsText();
    1010        if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
    11             modifier = "ctrlKey";
     11            modifiers = ["ctrlKey", "altKey"];
    1212        else
    13             modifier = "altKey";
    14         eventSender.keyDown("a", [modifier]);
     13            modifiers = ["altKey"];
     14        eventSender.keyDown("a", modifiers);
    1515    }
    1616}
  • trunk/LayoutTests/fast/forms/access-key.html

    r28620 r34259  
    1111{
    1212    if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
    13         modifier = "ctrlKey";
     13        modifiers = ["ctrlKey", "altKey"];
    1414    else
    15         modifier = "altKey";
    16     eventSender.keyDown(key, [modifier]);
     15        modifiers = ["altKey"];
     16    eventSender.keyDown(key, modifiers);
    1717}
    1818function test()
  • trunk/LayoutTests/fast/forms/focus-selection-input-expected.txt

    r29139 r34259  
    2525
    26261) Hit tab, the whole phrase "SUCCESS and SUCCESS" should be selected: 
    27 2) Hit Ctrl-J, the whole phrase "SUCCESS and SUCCESS" should be selected: 
     272) Hit Ctrl-Option-J (or Alt-J on Windows), the whole phrase "SUCCESS and SUCCESS" should be selected: 
    28283) , only the word "SUCCESS" should be selected: 
    29294) Click in the input field, nothing should be selected: 
    30305) Click this label, only the word "SUCCESS" should be selected: 
    31 6) Hit Ctrl-U, the whole phrase "SUCCESS and SUCCESS" should be selected: 
     316) Hit Ctrl-Option-U (or Alt-U on Windows), the whole phrase "SUCCESS and SUCCESS" should be selected: 
    32327) , only the word "SUCCESS" should be selected: 
    33338)  , the whole phrase "SUCCESS and SUCCESS" should be selected:
    3434
    3535
    36 9) Hit Ctrl-I, the whole phrase "SUCCESS and SUCCESS" should be selected:
     369) Hit Ctrl-Option-I (or Alt-I on Windows), the whole phrase "SUCCESS and SUCCESS" should be selected:
    3737
    3838
  • trunk/LayoutTests/fast/forms/focus-selection-input.html

    r26681 r34259  
    1111        return;
    1212
    13     var accessKeyModifier = "altKey";
    14     if (navigator.userAgent.search(/\bMac OS X\b/) != -1) {
    15         accessKeyModifier = "ctrlKey";
    16     }
     13    var accessKeyModifiers = ["altKey"];
     14    if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
     15        accessKeyModifiers = ["ctrlKey", "altKey"];
    1716
    1817    layoutTestController.dumpEditingCallbacks();
     
    2726    shouldBe("second.selectionStart", "11");
    2827    shouldBe("second.selectionEnd", "18");
    29     eventSender.keyDown("J", [accessKeyModifier]);
     28    eventSender.keyDown("J", accessKeyModifiers);
    3029    shouldBe("second.selectionStart", "11");
    3130    shouldBe("second.selectionEnd", "18");
     
    5655    shouldBe("sixth.selectionStart", "12");
    5756    shouldBe("sixth.selectionEnd", "19");
    58     eventSender.keyDown("U", [accessKeyModifier]);
     57    eventSender.keyDown("U", accessKeyModifiers);
    5958    shouldBe("sixth.selectionStart", "0");
    6059    shouldBe("sixth.selectionEnd", "19");
     
    7675    shouldBe("ninth.selectionStart", "12");
    7776    shouldBe("ninth.selectionEnd", "19");
    78     eventSender.keyDown("I", [accessKeyModifier]);
     77    eventSender.keyDown("I", accessKeyModifiers);
    7978    shouldBe("ninth.selectionStart", "0");
    8079    shouldBe("ninth.selectionEnd", "19");
     
    103102<br>
    104103
    105 2) Hit Ctrl-J, the whole phrase "SUCCESS and SUCCESS" should be selected:
     1042) Hit Ctrl-Option-J (or Alt-J on Windows), the whole phrase "SUCCESS and SUCCESS" should be selected:
    106105<input type="text" id="second" accesskey="j" value="SUCCESS and SUCCESS">
    107106<script>
     
    147146<br>
    148147
    149 6) <label id="sixthLabel" for="sixth" accesskey="u">Hit Ctrl-U, the whole phrase "SUCCESS and SUCCESS" should be selected:</label>
     1486) <label id="sixthLabel" for="sixth" accesskey="u">Hit Ctrl-Option-U (or Alt-U on Windows), the whole phrase "SUCCESS and SUCCESS" should be selected:</label>
    150149<input type="text" id="sixth" value="SUCCESS and SUCCESS">
    151150<script>
     
    184183
    1851849) <fieldset>
    186 <legend id="eighthLegend" accesskey="i">Hit Ctrl-I, the whole phrase "SUCCESS and SUCCESS" should be selected:</legend>
     185<legend id="eighthLegend" accesskey="i">Hit Ctrl-Option-I (or Alt-I on Windows), the whole phrase "SUCCESS and SUCCESS" should be selected:</legend>
    187186<input type="text" id="ninth" value="SUCCESS and SUCCESS">
    188187<script>
  • trunk/LayoutTests/fast/forms/focus-selection-textarea-expected.txt

    r29139 r34259  
    2525
    26261) Hit tab, only the word "SUCCESS" should be selected: 
    27 2) Hit Ctrl-J, only the word "SUCCESS" should be selected: 
     272) Hit Ctrl-Option-J (or Alt-J on Windows), only the word "SUCCESS" should be selected: 
    28283) , only the word "SUCCESS" should be selected: 
    29294) Click in the input field, nothing should be selected: 
    30305) Click this label, only the word "SUCCESS" should be selected: 
    31 6) Hit Ctrl-U, only the word "SUCCESS" should be selected: 
     316) Hit Ctrl-Option-U (or Alt-U on Windows), only the word "SUCCESS" should be selected: 
    32327) , only the word "SUCCESS" should be selected: 
    33338)  , only the word "SUCCESS" should be selected:
    3434
    3535
    36 9) Hit Ctrl-I, only the word "SUCCESS" should be selected:
     369) Hit Ctrl-Option-I (or Alt-I on Windows), only the word "SUCCESS" should be selected:
    3737
    3838
  • trunk/LayoutTests/fast/forms/focus-selection-textarea.html

    r20407 r34259  
    1111        return;
    1212
     13    var accessKeyModifiers = ["altKey"];
     14    if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
     15        accessKeyModifiers = ["ctrlKey", "altKey"];
     16
    1317    layoutTestController.dumpEditingCallbacks();
    1418    layoutTestController.dumpAsText();
     
    2226    shouldBe("second.selectionStart", "11");
    2327    shouldBe("second.selectionEnd", "18");
    24     eventSender.keyDown("J", ["ctrlKey"]);
     28    eventSender.keyDown("J", accessKeyModifiers);
    2529    shouldBe("second.selectionStart", "11");
    2630    shouldBe("second.selectionEnd", "18");
     
    5155    shouldBe("sixth.selectionStart", "11");
    5256    shouldBe("sixth.selectionEnd", "18");
    53     eventSender.keyDown("U", ["ctrlKey"]);
     57    eventSender.keyDown("U", accessKeyModifiers);
    5458    shouldBe("sixth.selectionStart", "11");
    5559    shouldBe("sixth.selectionEnd", "18");
     
    7175    shouldBe("ninth.selectionStart", "11");
    7276    shouldBe("ninth.selectionEnd", "18");
    73     eventSender.keyDown("I", ["ctrlKey"]);
     77    eventSender.keyDown("I", accessKeyModifiers);
    7478    shouldBe("ninth.selectionStart", "11");
    7579    shouldBe("ninth.selectionEnd", "18");
     
    97101<br>
    98102
    99 2) Hit Ctrl-J, only the word "SUCCESS" should be selected:
     1032) Hit Ctrl-Option-J (or Alt-J on Windows), only the word "SUCCESS" should be selected:
    100104<textarea id="second" accesskey="j">FAILURE or SUCCESS</textarea>
    101105<script>
     
    141145<br>
    142146
    143 6) <label id="sixthLabel" for="sixth" accesskey="u">Hit Ctrl-U, only the word "SUCCESS" should be selected:</label>
     1476) <label id="sixthLabel" for="sixth" accesskey="u">Hit Ctrl-Option-U (or Alt-U on Windows), only the word "SUCCESS" should be selected:</label>
    144148<textarea id="sixth">FAILURE or SUCCESS</textarea>
    145149<script>
     
    178182
    1791839) <fieldset>
    180 <legend id="eighthLegend" accesskey="i">Hit Ctrl-I, only the word "SUCCESS" should be selected:</legend>
     184<legend id="eighthLegend" accesskey="i">Hit Ctrl-Option-I (or Alt-I on Windows), only the word "SUCCESS" should be selected:</legend>
    181185<textarea id="ninth">FAILURE or SUCCESS</textarea>
    182186<script>
  • trunk/LayoutTests/fast/forms/legend-access-key.html

    r28620 r34259  
    1414
    1515        if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
    16             modifier = "ctrlKey";
     16            modifiers = ["ctrlKey", "altKey"];
    1717        else
    18             modifier = "altKey";
    19         eventSender.keyDown("f", [modifier]);
     18            modifiers = "altKey";
     19        eventSender.keyDown("f", modifiers);
    2020    }
    2121}
  • trunk/LayoutTests/fast/forms/select-accesskey.html

    r26681 r34259  
    33<option>jee
    44</select>
    5 Press ctrl-a to activate the select. Works as layout test too using eventSender.
     5Press Ctrl-Option-A (or Alt-A on Windows) to activate the select. Works as layout test too using eventSender.
    66
    77<div>
     
    1616<script>
    1717    if (window.eventSender) {
    18         var mod = [];
     18        layoutTestController.dumpAsText();
     19
     20        var modifiers;
    1921        if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
    20             mod[0]='ctrlKey';
     22            modifiers = ['ctrlKey', 'altKey'];
    2123        else
    22             mod[0]='altKey';           
    23         eventSender.keyDown('a', mod);
     24            modifiers = ['altKey'];
     25        eventSender.keyDown('a', modifiers);
    2426    }
    2527</script>
  • trunk/WebCore/ChangeLog

    r34257 r34259  
     12008-05-30  Alexey Proskuryakov  <ap@webkit.org>
     2
     3        Reviewed by Darin.
     4
     5        http://bugs.webkit.org/show_bug.cgi?id=7466
     6        <rdar://problem/4657563> Use of Ctrl as access key modifier conflicts with Mac OS X
     7        emacs-style keybindings
     8
     9        * page/EventHandler.cpp:
     10        (WebCore::EventHandler::handleAccessKey): Use Ctrl+Option for access keys on Mac OS X.
     11
    1122008-05-30  Maciej Stachowiak  <mjs@apple.com>
    213
  • trunk/WebCore/page/mac/EventHandlerMac.mm

    r32700 r34259  
    4848using namespace EventNames;
    4949
    50 unsigned EventHandler::s_accessKeyModifiers = PlatformKeyboardEvent::CtrlKey;
     50unsigned EventHandler::s_accessKeyModifiers = PlatformKeyboardEvent::CtrlKey | PlatformKeyboardEvent::AltKey;
    5151
    5252static RetainPtr<NSEvent>& currentEvent()
Note: See TracChangeset for help on using the changeset viewer.