OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stdio.h> | 5 #include <stdio.h> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/at_exit.h" | 8 #include "base/at_exit.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 | 75 |
76 virtual ~MinimalInputEventFilter() { | 76 virtual ~MinimalInputEventFilter() { |
77 root_->RemovePreTargetHandler(this); | 77 root_->RemovePreTargetHandler(this); |
78 root_->SetProperty(aura::client::kRootWindowInputMethodKey, | 78 root_->SetProperty(aura::client::kRootWindowInputMethodKey, |
79 static_cast<ui::InputMethod*>(NULL)); | 79 static_cast<ui::InputMethod*>(NULL)); |
80 } | 80 } |
81 | 81 |
82 private: | 82 private: |
83 // ui::EventHandler: | 83 // ui::EventHandler: |
84 virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE { | 84 virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE { |
85 const ui::EventType type = event->type(); | 85 if (event->IsTranslated()) { |
86 if (type == ui::ET_TRANSLATED_KEY_PRESS || | |
87 type == ui::ET_TRANSLATED_KEY_RELEASE) { | |
88 // The |event| is already handled by this object, change the type of the | 86 // The |event| is already handled by this object, change the type of the |
89 // event to ui::ET_KEY_* and pass it to the next filter. | 87 // event to ui::ET_KEY_* and pass it to the next filter. |
90 static_cast<ui::TranslatedKeyEvent*>(event)->ConvertToKeyEvent(); | 88 event->SetTranslated(false); |
91 } else { | 89 } else { |
92 if (input_method_->DispatchKeyEvent(*event)) | 90 if (input_method_->DispatchKeyEvent(*event)) |
93 event->StopPropagation(); | 91 event->StopPropagation(); |
94 } | 92 } |
95 } | 93 } |
96 | 94 |
97 // ui::internal::InputMethodDelegate: | 95 // ui::internal::InputMethodDelegate: |
98 virtual bool DispatchKeyEventPostIME(const ui::KeyEvent& event) OVERRIDE { | 96 virtual bool DispatchKeyEventPostIME(const ui::KeyEvent& event) OVERRIDE { |
99 ui::TranslatedKeyEvent aura_event(event); | 97 ui::KeyEvent aura_event(event); |
| 98 aura_event.SetTranslated(true); |
100 ui::EventDispatchDetails details = | 99 ui::EventDispatchDetails details = |
101 root_->GetHost()->dispatcher()->OnEventFromSource(&aura_event); | 100 root_->GetHost()->dispatcher()->OnEventFromSource(&aura_event); |
102 return aura_event.handled() || details.dispatcher_destroyed; | 101 return aura_event.handled() || details.dispatcher_destroyed; |
103 } | 102 } |
104 | 103 |
105 aura::Window* root_; | 104 aura::Window* root_; |
106 scoped_ptr<ui::InputMethod> input_method_; | 105 scoped_ptr<ui::InputMethod> input_method_; |
107 | 106 |
108 DISALLOW_COPY_AND_ASSIGN(MinimalInputEventFilter); | 107 DISALLOW_COPY_AND_ASSIGN(MinimalInputEventFilter); |
109 }; | 108 }; |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 | 293 |
295 // TODO(beng): This crashes in a DCHECK on X11 because this thread's | 294 // TODO(beng): This crashes in a DCHECK on X11 because this thread's |
296 // MessageLoop is not of TYPE_UI. I think we need a way to build | 295 // MessageLoop is not of TYPE_UI. I think we need a way to build |
297 // Aura that doesn't define platform-specific stuff. | 296 // Aura that doesn't define platform-specific stuff. |
298 aura::Env::CreateInstance(); | 297 aura::Env::CreateInstance(); |
299 mojo::examples::LauncherImpl launcher(shell_handle); | 298 mojo::examples::LauncherImpl launcher(shell_handle); |
300 loop.Run(); | 299 loop.Run(); |
301 | 300 |
302 return MOJO_RESULT_OK; | 301 return MOJO_RESULT_OK; |
303 } | 302 } |
OLD | NEW |