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

Side by Side Diff: ash/wm/maximize_mode/maximize_mode_event_blocker.cc

Issue 286103004: Blocked volume up/down events that originated from remapped function keys. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed bool logic to short circuit in event_generator.cc Created 6 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 unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698