Changeset 49193 in webkit


Ignore:
Timestamp:
Oct 6, 2009 10:24:37 AM (14 years ago)
Author:
xan@webkit.org
Message:

WebCore:

2009-10-06 Xan Lopez <xlopez@igalia.com>

Reviewed by Eric Seidel.

https://bugs.webkit.org/show_bug.cgi?id=25526
[Gtk] Additional support is needed for caret browsing

Enable caret movement commands also when caret browsing setting is
enabled.

  • editing/EditorCommand.cpp: (WebCore::caretBrowsingEnabled): (WebCore::enabledVisibleSelectionOrCaretBrowsing): (WebCore::enabledInEditableTextOrCaretBrowsing): (WebCore::CommandEntry::):
  • manual-tests/gtk/caret-browsing.html: Added.

WebKit/gtk:

2009-10-06 Xan Lopez <xlopez@igalia.com>

Reviewed by Eric Seidel.

https://bugs.webkit.org/show_bug.cgi?id=25526
[Gtk] Additional support is needed for caret browsing

Remove special cases for caret browsing, they are now handled in
cross-platform code.

  • WebCoreSupport/EditorClientGtk.cpp: (WebKit::EditorClient::handleKeyboardEvent):
Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r49191 r49193  
     12009-10-06  Xan Lopez  <xlopez@igalia.com>
     2
     3        Reviewed by Eric Seidel.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=25526
     6        [Gtk] Additional support is needed for caret browsing
     7
     8        Enable caret movement commands also when caret browsing setting is
     9        enabled.
     10
     11        * editing/EditorCommand.cpp:
     12        (WebCore::caretBrowsingEnabled):
     13        (WebCore::enabledVisibleSelectionOrCaretBrowsing):
     14        (WebCore::enabledInEditableTextOrCaretBrowsing):
     15        (WebCore::CommandEntry::):
     16        * manual-tests/gtk/caret-browsing.html: Added.
     17
    1182009-10-06  Anton Muhin  <antonm@chromium>
    219
  • trunk/WebCore/editing/EditorCommand.cpp

    r47541 r49193  
    22 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
    33 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
     4 * Copyright (C) 2009 Igalia S.L.
    45 *
    56 * Redistribution and use in source and binary forms, with or without
     
    10971098}
    10981099
     1100static bool caretBrowsingEnabled(Frame* frame)
     1101{
     1102    return frame->settings() && frame->settings()->caretBrowsingEnabled();
     1103}
     1104
     1105static EditorCommandSource dummyEditorCommandSource = static_cast<EditorCommandSource>(0);
     1106
     1107static bool enabledVisibleSelectionOrCaretBrowsing(Frame* frame, Event* event, EditorCommandSource)
     1108{
     1109    // The EditorCommandSource parameter is unused in enabledVisibleSelection, so just pass a dummy variable
     1110    return caretBrowsingEnabled(frame) || enabledVisibleSelection(frame, event, dummyEditorCommandSource);
     1111}
     1112
    10991113static bool enabledVisibleSelectionAndMark(Frame* frame, Event* event, EditorCommandSource)
    11001114{
     
    11391153{
    11401154    return frame->editor()->selectionForCommand(event).isContentEditable();
     1155}
     1156
     1157static bool enabledInEditableTextOrCaretBrowsing(Frame* frame, Event* event, EditorCommandSource)
     1158{
     1159    // The EditorCommandSource parameter is unused in enabledInEditableText, so just pass a dummy variable
     1160    return caretBrowsingEnabled(frame) || enabledInEditableText(frame, event, dummyEditorCommandSource);
    11411161}
    11421162
     
    13311351        { "MoveBackward", { executeMoveBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13321352        { "MoveBackwardAndModifySelection", { executeMoveBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1333         { "MoveDown", { executeMoveDown, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1334         { "MoveDownAndModifySelection", { executeMoveDownAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1353        { "MoveDown", { executeMoveDown, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1354        { "MoveDownAndModifySelection", { executeMoveDownAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13351355        { "MoveForward", { executeMoveForward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13361356        { "MoveForwardAndModifySelection", { executeMoveForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1337         { "MoveLeft", { executeMoveLeft, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1338         { "MoveLeftAndModifySelection", { executeMoveLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1357        { "MoveLeft", { executeMoveLeft, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1358        { "MoveLeftAndModifySelection", { executeMoveLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13391359        { "MovePageDown", { executeMovePageDown, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13401360        { "MovePageDownAndModifySelection", { executeMovePageDownAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13411361        { "MovePageUp", { executeMovePageUp, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13421362        { "MovePageUpAndModifySelection", { executeMovePageUpAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1343         { "MoveParagraphBackwardAndModifySelection", { executeMoveParagraphBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1344         { "MoveParagraphForwardAndModifySelection", { executeMoveParagraphForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1345         { "MoveRight", { executeMoveRight, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1346         { "MoveRightAndModifySelection", { executeMoveRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1363        { "MoveParagraphBackwardAndModifySelection", { executeMoveParagraphBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1364        { "MoveParagraphForwardAndModifySelection", { executeMoveParagraphForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1365        { "MoveRight", { executeMoveRight, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1366        { "MoveRightAndModifySelection", { executeMoveRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13471367        { "MoveToBeginningOfDocument", { executeMoveToBeginningOfDocument, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13481368        { "MoveToBeginningOfDocumentAndModifySelection", { executeMoveToBeginningOfDocumentAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     
    13651385        { "MoveToRightEndOfLine", { executeMoveToRightEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13661386        { "MoveToRightEndOfLineAndModifySelection", { executeMoveToRightEndOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1367         { "MoveUp", { executeMoveUp, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1368         { "MoveUpAndModifySelection", { executeMoveUpAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1387        { "MoveUp", { executeMoveUp, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1388        { "MoveUpAndModifySelection", { executeMoveUpAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13691389        { "MoveWordBackward", { executeMoveWordBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13701390        { "MoveWordBackwardAndModifySelection", { executeMoveWordBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13711391        { "MoveWordForward", { executeMoveWordForward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13721392        { "MoveWordForwardAndModifySelection", { executeMoveWordForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1373         { "MoveWordLeft", { executeMoveWordLeft, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1374         { "MoveWordLeftAndModifySelection", { executeMoveWordLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1375         { "MoveWordRight", { executeMoveWordRight, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    1376         { "MoveWordRightAndModifySelection", { executeMoveWordRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1393        { "MoveWordLeft", { executeMoveWordLeft, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1394        { "MoveWordLeftAndModifySelection", { executeMoveWordLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1395        { "MoveWordRight", { executeMoveWordRight, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
     1396        { "MoveWordRightAndModifySelection", { executeMoveWordRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13771397        { "Outdent", { executeOutdent, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
    13781398        { "Paste", { executePaste, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
  • trunk/WebKit/gtk/ChangeLog

    r49190 r49193  
     12009-10-06  Xan Lopez  <xlopez@igalia.com>
     2
     3        Reviewed by Eric Seidel.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=25526
     6        [Gtk] Additional support is needed for caret browsing
     7
     8        Remove special cases for caret browsing, they are now handled in
     9        cross-platform code.
     10
     11        * WebCoreSupport/EditorClientGtk.cpp:
     12        (WebKit::EditorClient::handleKeyboardEvent):
     13
    1142009-10-06  Pavel Feldman  <pfeldman@chromium.org>
    215
  • trunk/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp

    r48964 r49193  
    454454}
    455455
    456 static bool handleCaretBrowsingKeyboardEvent(Frame* frame, const PlatformKeyboardEvent* keyEvent)
    457 {
    458     switch (keyEvent->windowsVirtualKeyCode()) {
    459         case VK_LEFT:
    460             frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE,
    461                     SelectionController::LEFT,
    462                     keyEvent->ctrlKey() ? WordGranularity : CharacterGranularity,
    463                     true);
    464             return true;
    465         case VK_RIGHT:
    466             frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE,
    467                     SelectionController::RIGHT,
    468                     keyEvent->ctrlKey() ? WordGranularity : CharacterGranularity,
    469                     true);
    470             return true;
    471         case VK_UP:
    472             frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE,
    473                     SelectionController::BACKWARD,
    474                     keyEvent->ctrlKey() ? ParagraphGranularity : LineGranularity,
    475                     true);
    476             return true;
    477         case VK_DOWN:
    478             frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE,
    479                     SelectionController::FORWARD,
    480                     keyEvent->ctrlKey() ? ParagraphGranularity : LineGranularity,
    481                     true);
    482             return true;
    483         default:
    484             return false; // Not a caret browswing keystroke, so continue processing.
    485     }
    486 }
    487 
    488456void EditorClient::handleKeyboardEvent(KeyboardEvent* event)
    489457{
     
    497465        return;
    498466
    499     bool caretBrowsing = frame->settings()->caretBrowsingEnabled();
    500     if (caretBrowsing && handleCaretBrowsingKeyboardEvent(frame, platformEvent)) {
    501         // This was a caret browsing key event, so prevent it from bubbling up to the DOM.
    502         event->setDefaultHandled();
    503         return;
    504     }
    505 
    506     // Don't allow editor commands or text insertion for nodes that cannot edit.
    507     if (!frame->editor()->canEdit())
     467    // Don't allow editor commands or text insertion for nodes that
     468    // cannot edit, unless we are in caret mode.
     469    if (!frame->editor()->canEdit() && !(frame->settings() && frame->settings()->caretBrowsingEnabled()))
    508470        return;
    509471
Note: See TracChangeset for help on using the changeset viewer.