Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(961)

Unified Diff: components/arc/ime/arc_ime_service.cc

Issue 2876693004: Implement GetTextFromRange(), GetTextRange() and GetSelectionRange() for ArcImeService. (Closed)
Patch Set: add comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/arc/ime/arc_ime_service.h ('k') | components/arc/ime/arc_ime_service_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..fa73fc9b88179e37ce5ac72e1ceb3412575efe77 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,18 @@ 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;
+ text_in_range_ = text_in_range;
+ selection_range_ = selection_range;
+ OnCursorRectChanged(rect);
+ InvalidateSurroundingTextAndSelectionRange();
kinaba 2017/05/15 01:35:09 I guess you meant to Invalidate() in other place(s
yhanada 2017/05/15 07:42:58 Done.
+}
+
////////////////////////////////////////////////////////////////////////////////
// Overridden from keyboard::KeyboardControllerObserver
void ArcImeService::OnKeyboardBoundsChanging(const gfx::Rect& new_bounds) {
@@ -337,6 +350,32 @@ 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 {
+ // It's supposed that this methdo is called only from
kinaba 2017/05/15 01:35:09 methdo => method
yhanada 2017/05/15 07:42:58 Done.
+ // InputMethod::OnCaretBoundsChanged(). In that method, the range obtained
+ // from GetTextRange() is used as the argument of this method. To prevent an
+ // unexpected usage, the check, |range != text_range_|, is added.
+ if (!text_range_.IsValid() || range != text_range_)
+ return false;
+ *text = text_in_range_;
+ return true;
+}
+
ui::TextInputMode ArcImeService::GetTextInputMode() const {
return ui::TEXT_INPUT_MODE_DEFAULT;
}
@@ -366,18 +405,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 +417,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;
@@ -401,4 +427,10 @@ bool ArcImeService::IsTextEditCommandEnabled(
return false;
}
+void ArcImeService::InvalidateSurroundingTextAndSelectionRange() {
+ text_range_ = gfx::Range::InvalidRange();
+ text_in_range_ = base::ASCIIToUTF16("");
kinaba 2017/05/15 01:35:09 base::string16()
yhanada 2017/05/15 07:42:58 Done.
+ selection_range_ = gfx::Range::InvalidRange();
+}
+
} // namespace arc
« no previous file with comments | « components/arc/ime/arc_ime_service.h ('k') | components/arc/ime/arc_ime_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698