Commit 47449c20 authored by Yoshifumi Inoue's avatar Yoshifumi Inoue Committed by Commit Bot

Move FrameSelection::Modify() for page granularity to EditorComamand.cpp

2017-07-14T11:14:28

2017-07-14T11: 14:22
Bug: 
Change-Id: I39e2a7d0906be5f8883d7467d2414babf6a84362
Reviewed-on: https://chromium-review.googlesource.com/571559Reviewed-by: default avatarYoichi Osato <yoichio@chromium.org>
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486694}
parent 14cf2beb
...@@ -397,26 +397,6 @@ bool FrameSelection::Modify(EAlteration alter, ...@@ -397,26 +397,6 @@ bool FrameSelection::Modify(EAlteration alter,
return true; return true;
} }
bool FrameSelection::Modify(EAlteration alter,
unsigned vertical_distance,
VerticalDirection direction) {
SelectionModifier selection_modifier(*GetFrame(),
ComputeVisibleSelectionInDOMTree());
if (!selection_modifier.ModifyWithPageGranularity(alter, vertical_distance,
direction)) {
return false;
}
SetSelection(selection_modifier.Selection().AsSelection(),
kCloseTyping | kClearTypingStyle | kUserTriggered,
alter == kAlterationMove ? CursorAlignOnScroll::kAlways
: CursorAlignOnScroll::kIfNeeded);
granularity_ = TextGranularity::kCharacter;
return true;
}
void FrameSelection::Clear() { void FrameSelection::Clear() {
granularity_ = TextGranularity::kCharacter; granularity_ = TextGranularity::kCharacter;
if (granularity_strategy_) if (granularity_strategy_)
......
...@@ -147,7 +147,6 @@ class CORE_EXPORT FrameSelection final ...@@ -147,7 +147,6 @@ class CORE_EXPORT FrameSelection final
TextGranularity, TextGranularity,
EUserTriggered = kNotUserTriggered); EUserTriggered = kNotUserTriggered);
enum VerticalDirection { kDirectionUp, kDirectionDown }; enum VerticalDirection { kDirectionUp, kDirectionDown };
bool Modify(EAlteration, unsigned vertical_distance, VerticalDirection);
// Moves the selection extent based on the selection granularity strategy. // Moves the selection extent based on the selection granularity strategy.
// This function does not allow the selection to collapse. If the new // This function does not allow the selection to collapse. If the new
......
...@@ -1224,6 +1224,29 @@ static bool ExecuteMoveLeftAndModifySelection(LocalFrame& frame, ...@@ -1224,6 +1224,29 @@ static bool ExecuteMoveLeftAndModifySelection(LocalFrame& frame,
return true; return true;
} }
// Returns true if selection is modified.
bool ModifySelectionyWithPageGranularity(
LocalFrame& frame,
FrameSelection::EAlteration alter,
unsigned vertical_distance,
FrameSelection::VerticalDirection direction) {
SelectionModifier selection_modifier(
frame, frame.Selection().ComputeVisibleSelectionInDOMTree());
if (!selection_modifier.ModifyWithPageGranularity(alter, vertical_distance,
direction)) {
return false;
}
frame.Selection().SetSelection(selection_modifier.Selection().AsSelection(),
FrameSelection::kCloseTyping |
FrameSelection::kClearTypingStyle |
kUserTriggered,
alter == FrameSelection::kAlterationMove
? CursorAlignOnScroll::kAlways
: CursorAlignOnScroll::kIfNeeded);
return true;
}
static bool ExecuteMovePageDown(LocalFrame& frame, static bool ExecuteMovePageDown(LocalFrame& frame,
Event*, Event*,
EditorCommandSource, EditorCommandSource,
...@@ -1231,8 +1254,9 @@ static bool ExecuteMovePageDown(LocalFrame& frame, ...@@ -1231,8 +1254,9 @@ static bool ExecuteMovePageDown(LocalFrame& frame,
unsigned distance = VerticalScrollDistance(frame); unsigned distance = VerticalScrollDistance(frame);
if (!distance) if (!distance)
return false; return false;
return frame.Selection().Modify(FrameSelection::kAlterationMove, distance, return ModifySelectionyWithPageGranularity(
FrameSelection::kDirectionDown); frame, FrameSelection::kAlterationMove, distance,
FrameSelection::kDirectionDown);
} }
static bool ExecuteMovePageDownAndModifySelection(LocalFrame& frame, static bool ExecuteMovePageDownAndModifySelection(LocalFrame& frame,
...@@ -1242,8 +1266,9 @@ static bool ExecuteMovePageDownAndModifySelection(LocalFrame& frame, ...@@ -1242,8 +1266,9 @@ static bool ExecuteMovePageDownAndModifySelection(LocalFrame& frame,
unsigned distance = VerticalScrollDistance(frame); unsigned distance = VerticalScrollDistance(frame);
if (!distance) if (!distance)
return false; return false;
return frame.Selection().Modify(FrameSelection::kAlterationExtend, distance, return ModifySelectionyWithPageGranularity(
FrameSelection::kDirectionDown); frame, FrameSelection::kAlterationExtend, distance,
FrameSelection::kDirectionDown);
} }
static bool ExecuteMovePageUp(LocalFrame& frame, static bool ExecuteMovePageUp(LocalFrame& frame,
...@@ -1253,8 +1278,9 @@ static bool ExecuteMovePageUp(LocalFrame& frame, ...@@ -1253,8 +1278,9 @@ static bool ExecuteMovePageUp(LocalFrame& frame,
unsigned distance = VerticalScrollDistance(frame); unsigned distance = VerticalScrollDistance(frame);
if (!distance) if (!distance)
return false; return false;
return frame.Selection().Modify(FrameSelection::kAlterationMove, distance, return ModifySelectionyWithPageGranularity(
FrameSelection::kDirectionUp); frame, FrameSelection::kAlterationMove, distance,
FrameSelection::kDirectionUp);
} }
static bool ExecuteMovePageUpAndModifySelection(LocalFrame& frame, static bool ExecuteMovePageUpAndModifySelection(LocalFrame& frame,
...@@ -1264,8 +1290,9 @@ static bool ExecuteMovePageUpAndModifySelection(LocalFrame& frame, ...@@ -1264,8 +1290,9 @@ static bool ExecuteMovePageUpAndModifySelection(LocalFrame& frame,
unsigned distance = VerticalScrollDistance(frame); unsigned distance = VerticalScrollDistance(frame);
if (!distance) if (!distance)
return false; return false;
return frame.Selection().Modify(FrameSelection::kAlterationExtend, distance, return ModifySelectionyWithPageGranularity(
FrameSelection::kDirectionUp); frame, FrameSelection::kAlterationExtend, distance,
FrameSelection::kDirectionUp);
} }
static bool ExecuteMoveRight(LocalFrame& frame, static bool ExecuteMoveRight(LocalFrame& frame,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment