Changeset 99255 in webkit


Ignore:
Timestamp:
Nov 3, 2011 6:18:16 PM (12 years ago)
Author:
xji@chromium.org
Message:

Enable ctrl-arrow move cursor by word in visual order in cr-win by command line flag.
https://bugs.webkit.org/show_bug.cgi?id=71163

Reviewed by Ryosuke Niwa.

Source/WebCore:

Add m_visualWordMovementEnabled page setting, trigger visual word movement
function (instead of logical one) when it is set as true.

right|leftWordPosition() are tested in editing/selection/move-by-word-visually*
by using --webkit-visual-word flag.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::visualWordMovementEnabled):

  • editing/FrameSelection.h:
  • page/Settings.cpp:

(WebCore::Settings::Settings):

  • page/Settings.h:

(WebCore::Settings::setVisualWordMovementEnabled):
(WebCore::Settings::visualWordMovementEnabled):

Source/WebKit/chromium:

To minimize the risk to LTR users, we enable this feature first to chromium win
by command line flag. This and corresponding changset in chromium
(http://codereview.chromium.org/8400078/)
should be removed after this feature is enabled without command line flag.

The work flow is:

  1. (chromium) adds command line flag --enable-visual-word-movement, pass it to WebCore::Settings through WebPreferences.
  2. in FrameSelection::modifyMovingLeft|Right, when 'visualWordMovementEnabled' is true in page's Settings, trigger visual word movement instead of logical one.


  • public/WebSettings.h:
  • src/WebSettingsImpl.cpp:

(WebKit::WebSettingsImpl::setVisualWordMovementEnabled):

  • src/WebSettingsImpl.h:

Tools:

  • DumpRenderTree/chromium/WebPreferences.cpp: Set visualWordMovementEabled to false in DRT.

(WebPreferences::applyTo):

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r99254 r99255  
     12011-11-02  Xiaomei Ji  <xji@chromium.org>
     2
     3        Enable ctrl-arrow move cursor by word in visual order in cr-win by command line flag.
     4        https://bugs.webkit.org/show_bug.cgi?id=71163
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        Add m_visualWordMovementEnabled page setting, trigger visual word movement
     9        function (instead of logical one) when it is set as true.
     10
     11        right|leftWordPosition() are tested in editing/selection/move-by-word-visually*
     12        by using --webkit-visual-word flag.
     13
     14        * editing/FrameSelection.cpp:
     15        (WebCore::FrameSelection::modifyMovingRight):
     16        (WebCore::FrameSelection::modifyMovingLeft):
     17        (WebCore::FrameSelection::visualWordMovementEnabled):
     18        * editing/FrameSelection.h:
     19        * page/Settings.cpp:
     20        (WebCore::Settings::Settings):
     21        * page/Settings.h:
     22        (WebCore::Settings::setVisualWordMovementEnabled):
     23        (WebCore::Settings::visualWordMovementEnabled):
     24
    1252011-11-03  Levi Weintraub  <leviw@chromium.org>
    226
  • trunk/Source/WebCore/editing/FrameSelection.cpp

    r97533 r99255  
    635635        break;
    636636    case WordGranularity:
     637        if (visualWordMovementEnabled()) {
     638            pos = rightWordPosition(VisiblePosition(m_selection.extent(), m_selection.affinity()));
     639            break;
     640        }
    637641    case SentenceGranularity:
    638642    case LineGranularity:
     
    806810        break;
    807811    case WordGranularity:
     812        if (visualWordMovementEnabled()) {
     813            pos = leftWordPosition(VisiblePosition(m_selection.extent(), m_selection.affinity()));
     814            break;
     815        }
    808816    case SentenceGranularity:
    809817    case LineGranularity:
     
    19581966}
    19591967
     1968inline bool FrameSelection::visualWordMovementEnabled() const
     1969{
     1970    Settings* settings = m_frame ? m_frame->settings() : 0;
     1971    return settings && settings->visualWordMovementEnabled();
     1972}
     1973
    19601974#ifndef NDEBUG
    19611975
  • trunk/Source/WebCore/editing/FrameSelection.h

    r97478 r99255  
    280280
    281281    bool dispatchSelectStart();
     282 
     283    bool visualWordMovementEnabled() const;
    282284
    283285    Frame* m_frame;
  • trunk/Source/WebCore/page/Settings.cpp

    r98990 r99255  
    231231    , m_suppressIncrementalRendering(false)
    232232    , m_backspaceKeyNavigationEnabled(true)
     233    , m_visualWordMovementEnabled(false)
    233234    , m_loadsImagesAutomaticallyTimer(this, &Settings::loadsImagesAutomaticallyTimerFired)
    234235{
  • trunk/Source/WebCore/page/Settings.h

    r98990 r99255  
    485485        static void setMockScrollbarsEnabled(bool flag);
    486486        static bool mockScrollbarsEnabled();
     487
     488        void setVisualWordMovementEnabled(bool enabled) { m_visualWordMovementEnabled = enabled; }
     489        bool visualWordMovementEnabled() const { return m_visualWordMovementEnabled; }
    487490
    488491    private:
     
    612615        bool m_suppressIncrementalRendering : 1;
    613616        bool m_backspaceKeyNavigationEnabled : 1;
     617        bool m_visualWordMovementEnabled : 1;
    614618
    615619        Timer<Settings> m_loadsImagesAutomaticallyTimer;
  • trunk/Source/WebKit/chromium/ChangeLog

    r99239 r99255  
     12011-11-02  Xiaomei Ji  <xji@chromium.org>
     2
     3        Enable ctrl-arrow move cursor by word in visual order in cr-win by command line flag.
     4        https://bugs.webkit.org/show_bug.cgi?id=71163
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        To minimize the risk to LTR users, we enable this feature first to chromium win
     9        by command line flag. This and corresponding changset in chromium
     10        (http://codereview.chromium.org/8400078/)
     11        should be removed after this feature is enabled without command line flag.
     12
     13        The work flow is:
     14        1. (chromium) adds command line flag --enable-visual-word-movement,
     15           pass it to WebCore::Settings through WebPreferences.
     16        2. in FrameSelection::modifyMovingLeft|Right, when 'visualWordMovementEnabled' is true in page's Settings,
     17           trigger visual word movement instead of logical one.
     18 
     19        * public/WebSettings.h:
     20        * src/WebSettingsImpl.cpp:
     21        (WebKit::WebSettingsImpl::setVisualWordMovementEnabled):
     22        * src/WebSettingsImpl.h:
     23
    1242011-11-03  Darin Adler  <darin@apple.com>
    225
  • trunk/Source/WebKit/chromium/public/WebSettings.h

    r98836 r99255  
    133133    virtual void setEnableScrollAnimator(bool) = 0;
    134134    virtual void setHixie76WebSocketProtocolEnabled(bool) = 0;
     135    virtual void setVisualWordMovementEnabled(bool) = 0;
    135136
    136137protected:
  • trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp

    r98730 r99255  
    466466}
    467467
     468void WebSettingsImpl::setVisualWordMovementEnabled(bool enabled)
     469{
     470    m_settings->setVisualWordMovementEnabled(enabled);
     471}
     472
    468473} // namespace WebKit
  • trunk/Source/WebKit/chromium/src/WebSettingsImpl.h

    r98672 r99255  
    125125    virtual void setEnableScrollAnimator(bool);
    126126    virtual void setHixie76WebSocketProtocolEnabled(bool);
     127    virtual void setVisualWordMovementEnabled(bool);
    127128
    128129private:
  • trunk/Tools/ChangeLog

    r99233 r99255  
     12011-11-02  Xiaomei Ji  <xji@chromium.org>
     2
     3        Enable ctrl-arrow move cursor by word in visual order in cr-win by command line flag.
     4        https://bugs.webkit.org/show_bug.cgi?id=71163
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        * DumpRenderTree/chromium/WebPreferences.cpp: Set visualWordMovementEabled to false in DRT.
     9        (WebPreferences::applyTo):
     10
    1112011-11-03  Eric Seidel  <eric@webkit.org>
    212
  • trunk/Tools/DumpRenderTree/chromium/WebPreferences.cpp

    r99070 r99255  
    235235    settings->setFullScreenEnabled(true);
    236236    settings->setValidationMessageTimerMagnification(-1);
    237 }
     237    settings->setVisualWordMovementEnabled(false);
     238}
Note: See TracChangeset for help on using the changeset viewer.