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 "ash/wm/maximize_mode/maximize_mode_event_blocker.h" | 5 #include "ash/wm/maximize_mode/maximize_mode_event_blocker.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/wm/maximize_mode/internal_input_device_list.h" | 8 #include "ash/wm/maximize_mode/internal_input_device_list.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "ui/aura/client/cursor_client.h" | 10 #include "ui/aura/client/cursor_client.h" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 root_window_->GetHost()->ConvertPointToHost(&last_mouse_location_); | 98 root_window_->GetHost()->ConvertPointToHost(&last_mouse_location_); |
99 } | 99 } |
100 } else if (internal_device && (event->IsMouseWheelEvent() || | 100 } else if (internal_device && (event->IsMouseWheelEvent() || |
101 event->IsScrollEvent())) { | 101 event->IsScrollEvent())) { |
102 return NULL; | 102 return NULL; |
103 } else if (event->IsKeyEvent() && event->HasNativeEvent()) { | 103 } else if (event->IsKeyEvent() && event->HasNativeEvent()) { |
104 // TODO(flackr): Disable events only from the internal keyboard device | 104 // TODO(flackr): Disable events only from the internal keyboard device |
105 // when we begin using XI2 events for keyboard events | 105 // when we begin using XI2 events for keyboard events |
106 // (http://crbug.com/368750) and can tell which device the event is | 106 // (http://crbug.com/368750) and can tell which device the event is |
107 // coming from, http://crbug.com/362881. | 107 // coming from, http://crbug.com/362881. |
108 // TODO(bruthig): Fix this to block rewritten volume keys | |
109 // (i.e. F9 and F10) from the device's keyboard. https://crbug.com/368669 | |
110 ui::KeyEvent* key_event = static_cast<ui::KeyEvent*>(event); | 108 ui::KeyEvent* key_event = static_cast<ui::KeyEvent*>(event); |
111 if (key_event->key_code() != ui::VKEY_VOLUME_DOWN && | 109 if ((key_event->flags() & ui::EF_FUNCTION_KEY) || |
112 key_event->key_code() != ui::VKEY_VOLUME_UP | 110 (key_event->key_code() != ui::VKEY_VOLUME_DOWN && |
| 111 key_event->key_code() != ui::VKEY_VOLUME_UP |
113 #if defined(OS_CHROMEOS) | 112 #if defined(OS_CHROMEOS) |
114 && key_event->key_code() != ui::VKEY_POWER | 113 && key_event->key_code() != ui::VKEY_POWER |
115 #endif | 114 #endif |
116 ) { | 115 ) |
| 116 ) { |
117 return NULL; | 117 return NULL; |
118 } | 118 } |
119 } | 119 } |
120 return default_targeter_->FindTargetForEvent(root, event); | 120 return default_targeter_->FindTargetForEvent(root, event); |
121 } | 121 } |
122 | 122 |
123 } // namespace | 123 } // namespace |
124 | 124 |
125 MaximizeModeEventBlocker::MaximizeModeEventBlocker() | 125 MaximizeModeEventBlocker::MaximizeModeEventBlocker() |
126 #if defined(USE_X11) | 126 #if defined(USE_X11) |
(...skipping 29 matching lines...) Expand all Loading... |
156 aura::Window* root_window) { | 156 aura::Window* root_window) { |
157 BlockKeyboardAndTouchpadTargeter* targeter = | 157 BlockKeyboardAndTouchpadTargeter* targeter = |
158 new BlockKeyboardAndTouchpadTargeter(root_window, this); | 158 new BlockKeyboardAndTouchpadTargeter(root_window, this); |
159 aura::ScopedWindowTargeter* scoped_targeter = new aura::ScopedWindowTargeter( | 159 aura::ScopedWindowTargeter* scoped_targeter = new aura::ScopedWindowTargeter( |
160 root_window, scoped_ptr<ui::EventTargeter>(targeter)); | 160 root_window, scoped_ptr<ui::EventTargeter>(targeter)); |
161 targeter->SetDefaultTargeter(scoped_targeter->old_targeter()); | 161 targeter->SetDefaultTargeter(scoped_targeter->old_targeter()); |
162 targeters_.push_back(scoped_targeter); | 162 targeters_.push_back(scoped_targeter); |
163 } | 163 } |
164 | 164 |
165 } // namespace ash | 165 } // namespace ash |
OLD | NEW |