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

Side by Side Diff: chrome/browser/chromeos/events/event_rewriter.cc

Issue 378503007: Fix some surprising reverse key mappings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments (derat) Created 6 years, 5 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 "chrome/browser/chromeos/events/event_rewriter.h" 5 #include "chrome/browser/chromeos/events/event_rewriter.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/sticky_keys/sticky_keys_controller.h" 9 #include "ash/sticky_keys/sticky_keys_controller.h"
10 #include "ash/wm/window_state.h" 10 #include "ash/wm/window_state.h"
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 rewritten_key_event->set_key_code(state.key_code); 388 rewritten_key_event->set_key_code(state.key_code);
389 rewritten_key_event->set_character( 389 rewritten_key_event->set_character(
390 ui::GetCharacterFromKeyCode(state.key_code, state.flags)); 390 ui::GetCharacterFromKeyCode(state.key_code, state.flags));
391 rewritten_key_event->NormalizeFlags(); 391 rewritten_key_event->NormalizeFlags();
392 #if defined(USE_X11) 392 #if defined(USE_X11)
393 XEvent* xev = rewritten_key_event->native_event(); 393 XEvent* xev = rewritten_key_event->native_event();
394 if (xev) { 394 if (xev) {
395 CHECK(xev->type == KeyPress || xev->type == KeyRelease); 395 CHECK(xev->type == KeyPress || xev->type == KeyRelease);
396 XKeyEvent* xkey = &(xev->xkey); 396 XKeyEvent* xkey = &(xev->xkey);
397 UpdateX11EventMask(rewritten_key_event->flags(), &xkey->state); 397 UpdateX11EventMask(rewritten_key_event->flags(), &xkey->state);
398 xkey->keycode = 398 // The X11 keycode represents a physical key position, so it shouldn't
399 XKeysymToKeycode(gfx::GetXDisplay(), 399 // change unless we have actually changed keys, not just modifiers.
400 ui::XKeysymForWindowsKeyCode( 400 // This is one guard against problems like crbug.com/390263.
401 state.key_code, state.flags & ui::EF_SHIFT_DOWN)); 401 if (key_event.key_code() != state.key_code) {
402 xkey->keycode = XKeysymForWindowsKeyCode(
Daniel Erat 2014/07/08 14:49:31 s/XKeysym/XKeyCode/
kpschoedel 2014/07/08 16:44:50 Drat. Nothing broke because it was an unambiguous
403 state.key_code, state.flags, gfx::GetXDisplay());
404 }
402 } 405 }
403 #endif 406 #endif
404 return status; 407 return status;
405 } 408 }
406 409
407 ui::EventRewriteStatus EventRewriter::RewriteMouseButtonEvent( 410 ui::EventRewriteStatus EventRewriter::RewriteMouseButtonEvent(
408 const ui::MouseEvent& mouse_event, 411 const ui::MouseEvent& mouse_event,
409 scoped_ptr<ui::Event>* rewritten_event) { 412 scoped_ptr<ui::Event>* rewritten_event) {
410 int flags = mouse_event.flags(); 413 int flags = mouse_event.flags();
411 RewriteLocatedEvent(mouse_event, &flags); 414 RewriteLocatedEvent(mouse_event, &flags);
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 936
934 XIFreeDeviceInfo(device_info); 937 XIFreeDeviceInfo(device_info);
935 } 938 }
936 939
937 void EventRewriter::DeviceRemoved(int device_id) { 940 void EventRewriter::DeviceRemoved(int device_id) {
938 device_id_to_type_.erase(device_id); 941 device_id_to_type_.erase(device_id);
939 } 942 }
940 #endif 943 #endif
941 944
942 } // namespace chromeos 945 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698