Chromium Code Reviews| Index: components/arc/ime/arc_ime_service.cc |
| diff --git a/components/arc/ime/arc_ime_service.cc b/components/arc/ime/arc_ime_service.cc |
| index 9259f31aad29e083415249ddb1dc897270a5f615..5b80309e779d35ed8ce3478649335374e7a3790b 100644 |
| --- a/components/arc/ime/arc_ime_service.cc |
| +++ b/components/arc/ime/arc_ime_service.cc |
| @@ -18,6 +18,7 @@ |
| #include "ui/events/base_event_utils.h" |
| #include "ui/events/event.h" |
| #include "ui/events/keycodes/keyboard_codes.h" |
| +#include "ui/gfx/range/range.h" |
| namespace arc { |
| @@ -231,6 +232,17 @@ void ArcImeService::ShowImeIfNeeded() { |
| } |
| } |
| +void ArcImeService::OnCursorRectChangedWithSurroundingText( |
| + const gfx::Rect& rect, |
| + const gfx::Range& text_range, |
| + const base::string16& text_in_range, |
| + const gfx::Range& selection_range) { |
| + text_range_ = text_range; |
|
hidehiko
2017/05/11 14:32:32
These values should be invalidated when the text i
yhanada
2017/05/12 07:52:06
These value should be used from InputMethod::OnCar
|
| + text_in_range_ = text_in_range; |
| + selection_range_ = selection_range; |
| + OnCursorRectChanged(rect); |
| +} |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // Overridden from keyboard::KeyboardControllerObserver |
| void ArcImeService::OnKeyboardBoundsChanging(const gfx::Rect& new_bounds) { |
| @@ -337,6 +349,28 @@ gfx::Rect ArcImeService::GetCaretBounds() const { |
| return converted; |
| } |
| +bool ArcImeService::GetTextRange(gfx::Range* range) const { |
| + if (!text_range_.IsValid()) |
| + return false; |
| + *range = text_range_; |
| + return true; |
| +} |
| + |
| +bool ArcImeService::GetSelectionRange(gfx::Range* range) const { |
| + if (!selection_range_.IsValid()) |
| + return false; |
| + *range = selection_range_; |
| + return true; |
| +} |
| + |
| +bool ArcImeService::GetTextFromRange(const gfx::Range& range, |
| + base::string16* text) const { |
| + if (!text_range_.IsValid() || range != text_range_) |
|
hidehiko
2017/05/11 14:32:31
Could you document the limitation of the range?
(I
yhanada
2017/05/12 07:52:06
As I commented above, I suppose that this method i
|
| + return false; |
| + *text = text_in_range_; |
| + return true; |
| +} |
| + |
| ui::TextInputMode ArcImeService::GetTextInputMode() const { |
| return ui::TEXT_INPUT_MODE_DEFAULT; |
| } |
| @@ -366,18 +400,10 @@ bool ArcImeService::HasCompositionText() const { |
| return has_composition_text_; |
| } |
| -bool ArcImeService::GetTextRange(gfx::Range* range) const { |
| - return false; |
| -} |
| - |
| bool ArcImeService::GetCompositionTextRange(gfx::Range* range) const { |
| return false; |
| } |
| -bool ArcImeService::GetSelectionRange(gfx::Range* range) const { |
| - return false; |
| -} |
| - |
| bool ArcImeService::SetSelectionRange(const gfx::Range& range) { |
| return false; |
| } |
| @@ -386,11 +412,6 @@ bool ArcImeService::DeleteRange(const gfx::Range& range) { |
| return false; |
| } |
| -bool ArcImeService::GetTextFromRange( |
| - const gfx::Range& range, base::string16* text) const { |
| - return false; |
| -} |
| - |
| bool ArcImeService::ChangeTextDirectionAndLayoutAlignment( |
| base::i18n::TextDirection direction) { |
| return false; |