| Index: third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp b/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp
|
| index 183403d5088dc50f8ddebc4ec3271022bcd066bf..aaab8722cdc2196b3977fbbf035f2bd84b52c989 100644
|
| --- a/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp
|
| @@ -1877,6 +1877,22 @@ static bool enabledInEditableText(LocalFrame& frame,
|
| return frame.editor().selectionForCommand(event).rootEditableElement();
|
| }
|
|
|
| +static bool enabledInFocusedEditableText(LocalFrame& frame,
|
| + Event* event,
|
| + EditorCommandSource dummy) {
|
| + if (!enabledInEditableText(frame, event, dummy))
|
| + return false;
|
| +
|
| + const Element* const focusedElement = frame.document()->focusedElement();
|
| + if (!focusedElement->containsIncludingHostElements(
|
| + *frame.selection().start().computeContainerNode())) {
|
| + // We should not move cursor if selected text does not have focus.
|
| + return false;
|
| + }
|
| +
|
| + return true;
|
| +}
|
| +
|
| static bool enabledDelete(LocalFrame& frame,
|
| Event* event,
|
| EditorCommandSource source) {
|
| @@ -2246,7 +2262,7 @@ static const EditorInternalCommand* internalCommand(const String& commandName) {
|
| enabledVisibleSelection, stateNone, valueNull, notTextInsertion,
|
| doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveDown, executeMoveDown,
|
| - supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone,
|
| + supportedFromMenuOrKeyBinding, enabledInFocusedEditableText, stateNone,
|
| valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveDownAndModifySelection,
|
| executeMoveDownAndModifySelection, supportedFromMenuOrKeyBinding,
|
| @@ -2260,7 +2276,7 @@ static const EditorInternalCommand* internalCommand(const String& commandName) {
|
| enabledVisibleSelection, stateNone, valueNull, notTextInsertion,
|
| doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveLeft, executeMoveLeft,
|
| - supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone,
|
| + supportedFromMenuOrKeyBinding, enabledInFocusedEditableText, stateNone,
|
| valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveLeftAndModifySelection,
|
| executeMoveLeftAndModifySelection, supportedFromMenuOrKeyBinding,
|
| @@ -2296,7 +2312,7 @@ static const EditorInternalCommand* internalCommand(const String& commandName) {
|
| supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone,
|
| valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveRight, executeMoveRight,
|
| - supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone,
|
| + supportedFromMenuOrKeyBinding, enabledInFocusedEditableText, stateNone,
|
| valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveRightAndModifySelection,
|
| executeMoveRightAndModifySelection, supportedFromMenuOrKeyBinding,
|
| @@ -2377,7 +2393,7 @@ static const EditorInternalCommand* internalCommand(const String& commandName) {
|
| supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone,
|
| valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveUp, executeMoveUp,
|
| - supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone,
|
| + supportedFromMenuOrKeyBinding, enabledInFocusedEditableText, stateNone,
|
| valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled},
|
| {WebEditingCommandType::MoveUpAndModifySelection,
|
| executeMoveUpAndModifySelection, supportedFromMenuOrKeyBinding,
|
|
|