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

Side by Side Diff: services/ui/ime/test_ime_driver/test_ime_driver.cc

Issue 2412593002: IME for Mus: Send ack for key events after IME driver processes the event. (Closed)
Patch Set: Addressed feedback. Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « services/ui/ime/ime_unittest.cc ('k') | services/ui/public/interfaces/ime.mojom » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "services/ui/ime/test_ime_driver/test_ime_driver.h" 5 #include "services/ui/ime/test_ime_driver/test_ime_driver.h"
6 6
7 #include "services/ui/public/interfaces/ime.mojom.h" 7 #include "services/ui/public/interfaces/ime.mojom.h"
8 8
9 namespace ui { 9 namespace ui {
10 namespace test { 10 namespace test {
11 11
12 class TestInputMethod : public mojom::InputMethod { 12 class TestInputMethod : public mojom::InputMethod {
13 public: 13 public:
14 explicit TestInputMethod(mojom::TextInputClientPtr client) 14 explicit TestInputMethod(mojom::TextInputClientPtr client)
15 : client_(std::move(client)) {} 15 : client_(std::move(client)) {}
16 ~TestInputMethod() override {} 16 ~TestInputMethod() override {}
17 17
18 private: 18 private:
19 // mojom::InputMethod: 19 // mojom::InputMethod:
20 void OnTextInputModeChanged(mojom::TextInputMode text_input_mode) override {} 20 void OnTextInputModeChanged(mojom::TextInputMode text_input_mode) override {}
21 void OnTextInputTypeChanged(mojom::TextInputType text_input_type) override {} 21 void OnTextInputTypeChanged(mojom::TextInputType text_input_type) override {}
22 void OnCaretBoundsChanged(const gfx::Rect& caret_bounds) override {} 22 void OnCaretBoundsChanged(const gfx::Rect& caret_bounds) override {}
23 void ProcessKeyEvent(std::unique_ptr<Event> key_event) override { 23 void ProcessKeyEvent(std::unique_ptr<Event> key_event,
24 const ProcessKeyEventCallback& callback) override {
24 DCHECK(key_event->IsKeyEvent()); 25 DCHECK(key_event->IsKeyEvent());
25 26
26 if (key_event->AsKeyEvent()->is_char()) { 27 if (key_event->AsKeyEvent()->is_char()) {
27 mojom::CompositionEventPtr composition_event = 28 mojom::CompositionEventPtr composition_event =
28 mojom::CompositionEvent::New(); 29 mojom::CompositionEvent::New();
29 composition_event->type = mojom::CompositionEventType::INSERT_CHAR; 30 composition_event->type = mojom::CompositionEventType::INSERT_CHAR;
30 composition_event->key_event = std::move(key_event); 31 composition_event->key_event = std::move(key_event);
31 client_->OnCompositionEvent(std::move(composition_event)); 32 client_->OnCompositionEvent(std::move(composition_event));
33 callback.Run(true);
32 } else { 34 } else {
33 client_->OnUnhandledEvent(std::move(key_event)); 35 callback.Run(false);
34 } 36 }
35 }; 37 }
36 void CancelComposition() override {} 38 void CancelComposition() override {}
37 39
38 mojom::TextInputClientPtr client_; 40 mojom::TextInputClientPtr client_;
39 41
40 DISALLOW_COPY_AND_ASSIGN(TestInputMethod); 42 DISALLOW_COPY_AND_ASSIGN(TestInputMethod);
41 }; 43 };
42 44
43 TestIMEDriver::TestIMEDriver() {} 45 TestIMEDriver::TestIMEDriver() {}
44 46
45 TestIMEDriver::~TestIMEDriver() {} 47 TestIMEDriver::~TestIMEDriver() {}
46 48
47 void TestIMEDriver::StartSession( 49 void TestIMEDriver::StartSession(
48 int32_t session_id, 50 int32_t session_id,
49 mojom::TextInputClientPtr client, 51 mojom::TextInputClientPtr client,
50 mojom::InputMethodRequest input_method_request) { 52 mojom::InputMethodRequest input_method_request) {
51 input_method_bindings_[session_id].reset( 53 input_method_bindings_[session_id].reset(
52 new mojo::Binding<mojom::InputMethod>( 54 new mojo::Binding<mojom::InputMethod>(
53 new TestInputMethod(std::move(client)), 55 new TestInputMethod(std::move(client)),
54 std::move(input_method_request))); 56 std::move(input_method_request)));
55 } 57 }
56 58
57 void TestIMEDriver::CancelSession(int32_t session_id) { 59 void TestIMEDriver::CancelSession(int32_t session_id) {
58 input_method_bindings_.erase(session_id); 60 input_method_bindings_.erase(session_id);
59 } 61 }
60 62
61 } // namespace test 63 } // namespace test
62 } // namespace ui 64 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/ime/ime_unittest.cc ('k') | services/ui/public/interfaces/ime.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698