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

Side by Side Diff: chrome/browser/ui/ash/event_rewriter.cc

Issue 11280153: Add Search-. as a shortcut for the Insert key when Search is acting as a Function key. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: forlanding Created 8 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/ash/event_rewriter.h" 5 #include "chrome/browser/ui/ash/event_rewriter.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 375
376 void EventRewriter::Rewrite(ui::KeyEvent* event) { 376 void EventRewriter::Rewrite(ui::KeyEvent* event) {
377 #if defined(OS_CHROMEOS) 377 #if defined(OS_CHROMEOS)
378 // Do not rewrite an event sent by ui_controls::SendKeyPress(). See 378 // Do not rewrite an event sent by ui_controls::SendKeyPress(). See
379 // crbug.com/136465. 379 // crbug.com/136465.
380 if (event->native_event()->xkey.send_event) 380 if (event->native_event()->xkey.send_event)
381 return; 381 return;
382 #endif 382 #endif
383 RewriteModifiers(event); 383 RewriteModifiers(event);
384 RewriteNumPadKeys(event); 384 RewriteNumPadKeys(event);
385 RewriteBackspaceAndArrowKeys(event); 385 RewriteExtendedKeys(event);
386 RewriteFunctionKeys(event); 386 RewriteFunctionKeys(event);
387 } 387 }
388 388
389 bool EventRewriter::IsAppleKeyboard() const { 389 bool EventRewriter::IsAppleKeyboard() const {
390 if (last_device_id_ == kBadDeviceId) 390 if (last_device_id_ == kBadDeviceId)
391 return false; 391 return false;
392 392
393 // Check which device generated |event|. 393 // Check which device generated |event|.
394 std::map<int, DeviceType>::const_iterator iter = 394 std::map<int, DeviceType>::const_iterator iter =
395 device_id_to_type_.find(last_device_id_); 395 device_id_to_type_.find(last_device_id_);
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 break; 656 break;
657 default: 657 default:
658 break; 658 break;
659 } 659 }
660 #else 660 #else
661 // TODO(yusukes): Support Ash on other platforms if needed. 661 // TODO(yusukes): Support Ash on other platforms if needed.
662 #endif 662 #endif
663 return rewritten; 663 return rewritten;
664 } 664 }
665 665
666 bool EventRewriter::RewriteBackspaceAndArrowKeys(ui::KeyEvent* event) { 666 bool EventRewriter::RewriteExtendedKeys(ui::KeyEvent* event) {
667 #if defined(OS_CHROMEOS) 667 #if defined(OS_CHROMEOS)
668 // On a ChromeOS keyboard, modifier keys can be used to access extended 668 // On a ChromeOS keyboard, modifier keys can be used to access extended
669 // keyboard shortcuts. On other keyboards, keys such as delete and page up are 669 // keyboard shortcuts. On other keyboards, keys such as delete and page up are
670 // already available, so we do not need to rewrite anything here. 670 // already available, so we do not need to rewrite anything here.
671 if (!EventSourceIsChromeOSKeyboard()) 671 if (!EventSourceIsChromeOSKeyboard())
672 return false; 672 return false;
673 673
674 const PrefService* pref_service = 674 const PrefService* pref_service =
675 pref_service_ ? pref_service_ : GetPrefService(); 675 pref_service_ ? pref_service_ : GetPrefService();
676 bool chromebook_function_key = CommandLine::ForCurrentProcess()->HasSwitch( 676 bool chromebook_function_key = CommandLine::ForCurrentProcess()->HasSwitch(
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
747 }, 747 },
748 { // Search+Right -> End 748 { // Search+Right -> End
749 XK_Right, 749 XK_Right,
750 0, Mod4Mask, 750 0, Mod4Mask,
751 XK_End, ui::VKEY_END, 751 XK_End, ui::VKEY_END,
752 }, 752 },
753 { // Search+Down -> Next (aka PageDown) 753 { // Search+Down -> Next (aka PageDown)
754 XK_Down, 754 XK_Down,
755 0, Mod4Mask, 755 0, Mod4Mask,
756 XK_Next, ui::VKEY_NEXT, 756 XK_Next, ui::VKEY_NEXT,
757 },
758 { // Search+Period -> Insert
759 XK_period,
760 0, Mod4Mask,
761 XK_Insert, ui::VKEY_INSERT,
757 } 762 }
758 }; 763 };
759 764
760 RewriteWithKeyboardRemappingsByKeySym(remappings, 765 RewriteWithKeyboardRemappingsByKeySym(remappings,
761 arraysize(remappings), 766 arraysize(remappings),
762 keysym, 767 keysym,
763 xkey->state, 768 xkey->state,
764 event->flags(), 769 event->flags(),
765 &remapped_native_keysym, 770 &remapped_native_keysym,
766 &remapped_native_mods, 771 &remapped_native_mods,
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 } else if (type == kDeviceChromeOSKeyboard) { 963 } else if (type == kDeviceChromeOSKeyboard) {
959 VLOG(1) << "ChromeOS keyboard '" << device_name << "' connected: " 964 VLOG(1) << "ChromeOS keyboard '" << device_name << "' connected: "
960 << "id=" << device_id; 965 << "id=" << device_id;
961 #endif 966 #endif
962 } 967 }
963 // Always overwrite the existing device_id since the X server may reuse a 968 // Always overwrite the existing device_id since the X server may reuse a
964 // device id for an unattached device. 969 // device id for an unattached device.
965 device_id_to_type_[device_id] = type; 970 device_id_to_type_[device_id] = type;
966 return type; 971 return type;
967 } 972 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/ash/event_rewriter.h ('k') | chrome/browser/ui/ash/event_rewriter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698