OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/shell/browser/shell_platform_data_aura.h" | 5 #include "content/shell/browser/shell_platform_data_aura.h" |
6 | 6 |
7 #include "content/shell/browser/shell.h" | 7 #include "content/shell/browser/shell.h" |
8 #include "ui/aura/client/aura_constants.h" | 8 #include "ui/aura/client/aura_constants.h" |
9 #include "ui/aura/client/default_capture_client.h" | 9 #include "ui/aura/client/default_capture_client.h" |
10 #include "ui/aura/env.h" | 10 #include "ui/aura/env.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 | 75 |
76 virtual ~MinimalInputEventFilter() { | 76 virtual ~MinimalInputEventFilter() { |
77 host_->window()->RemovePreTargetHandler(this); | 77 host_->window()->RemovePreTargetHandler(this); |
78 host_->window()->SetProperty(aura::client::kRootWindowInputMethodKey, | 78 host_->window()->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 // See the comment in InputMethodEventFilter::OnKeyEvent() for details. |
86 if (type == ui::ET_TRANSLATED_KEY_PRESS || | 86 if (event->IsTranslated()) { |
87 type == ui::ET_TRANSLATED_KEY_RELEASE) { | 87 event->SetTranslated(false); |
88 // 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. | |
90 static_cast<ui::TranslatedKeyEvent*>(event)->ConvertToKeyEvent(); | |
91 } else { | 88 } else { |
92 if (input_method_->DispatchKeyEvent(*event)) | 89 if (input_method_->DispatchKeyEvent(*event)) |
93 event->StopPropagation(); | 90 event->StopPropagation(); |
94 } | 91 } |
95 } | 92 } |
96 | 93 |
97 // ui::internal::InputMethodDelegate: | 94 // ui::internal::InputMethodDelegate: |
98 virtual bool DispatchKeyEventPostIME(const ui::KeyEvent& event) OVERRIDE { | 95 virtual bool DispatchKeyEventPostIME(const ui::KeyEvent& event) OVERRIDE { |
99 ui::TranslatedKeyEvent aura_event(event); | 96 // See the comment in InputMethodEventFilter::DispatchKeyEventPostIME() for |
| 97 // details. |
| 98 ui::KeyEvent aura_event(event); |
| 99 aura_event.SetTranslated(true); |
100 ui::EventDispatchDetails details = | 100 ui::EventDispatchDetails details = |
101 host_->dispatcher()->OnEventFromSource(&aura_event); | 101 host_->dispatcher()->OnEventFromSource(&aura_event); |
102 return aura_event.handled() || details.dispatcher_destroyed; | 102 return aura_event.handled() || details.dispatcher_destroyed; |
103 } | 103 } |
104 | 104 |
105 aura::WindowTreeHost* host_; | 105 aura::WindowTreeHost* host_; |
106 scoped_ptr<ui::InputMethod> input_method_; | 106 scoped_ptr<ui::InputMethod> input_method_; |
107 | 107 |
108 DISALLOW_COPY_AND_ASSIGN(MinimalInputEventFilter); | 108 DISALLOW_COPY_AND_ASSIGN(MinimalInputEventFilter); |
109 }; | 109 }; |
(...skipping 24 matching lines...) Expand all Loading... |
134 | 134 |
135 void ShellPlatformDataAura::ShowWindow() { | 135 void ShellPlatformDataAura::ShowWindow() { |
136 host_->Show(); | 136 host_->Show(); |
137 } | 137 } |
138 | 138 |
139 void ShellPlatformDataAura::ResizeWindow(const gfx::Size& size) { | 139 void ShellPlatformDataAura::ResizeWindow(const gfx::Size& size) { |
140 host_->SetBounds(gfx::Rect(size)); | 140 host_->SetBounds(gfx::Rect(size)); |
141 } | 141 } |
142 | 142 |
143 } // namespace content | 143 } // namespace content |
OLD | NEW |