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

Unified Diff: content/browser/renderer_host/input/web_input_event_builders_mac.mm

Issue 2439953005: Support NSFlagsChanged in ui::EventFromNative. (Closed)
Patch Set: Unify NSFlagsChanged handling between content and ui/events. Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ui/events/cocoa/cocoa_event_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/input/web_input_event_builders_mac.mm
diff --git a/content/browser/renderer_host/input/web_input_event_builders_mac.mm b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
index 45c37416b0d02e754e0700ceaed613b8fbff8bc2..ebc3fa5bd0594e8c3483cced328141da5ab5391f 100644
--- a/content/browser/renderer_host/input/web_input_event_builders_mac.mm
+++ b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
@@ -48,79 +48,6 @@ namespace content {
namespace {
-// Return true if the target modifier key is up. OS X has an "official" flag
-// to test whether either left or right versions of a modifier key are held,
-// and "unofficial" flags for the left and right versions independently. This
-// function verifies that |target_key_mask| and |otherKeyMask| (which should be
-// the left and right versions of a modifier) are consistent with with the
-// state of |eitherKeyMask| (which should be the corresponding ""official"
-// flag). If they are consistent, it tests |target_key_mask|; otherwise it tests
-// |either_key_mask|.
-inline bool IsModifierKeyUp(unsigned int flags,
- unsigned int target_key_mask,
- unsigned int other_key_mask,
- unsigned int either_key_mask) {
- bool either_key_down = (flags & either_key_mask) != 0;
- bool target_key_down = (flags & target_key_mask) != 0;
- bool other_key_down = (flags & other_key_mask) != 0;
- if (either_key_down != (target_key_down || other_key_down))
- return !either_key_down;
- return !target_key_down;
-}
-
-bool IsKeyUpEvent(NSEvent* event) {
- if ([event type] != NSFlagsChanged)
- return [event type] == NSKeyUp;
-
- // Unofficial bit-masks for left- and right-hand versions of modifier keys.
- // These values were determined empirically.
- const unsigned int kLeftControlKeyMask = 1 << 0;
- const unsigned int kLeftShiftKeyMask = 1 << 1;
- const unsigned int kRightShiftKeyMask = 1 << 2;
- const unsigned int kLeftCommandKeyMask = 1 << 3;
- const unsigned int kRightCommandKeyMask = 1 << 4;
- const unsigned int kLeftAlternateKeyMask = 1 << 5;
- const unsigned int kRightAlternateKeyMask = 1 << 6;
- const unsigned int kRightControlKeyMask = 1 << 13;
-
- switch ([event keyCode]) {
- case 54: // Right Command
- return IsModifierKeyUp([event modifierFlags], kRightCommandKeyMask,
- kLeftCommandKeyMask, NSCommandKeyMask);
- case 55: // Left Command
- return IsModifierKeyUp([event modifierFlags], kLeftCommandKeyMask,
- kRightCommandKeyMask, NSCommandKeyMask);
-
- case 57: // Capslock
- return ([event modifierFlags] & NSAlphaShiftKeyMask) == 0;
-
- case 56: // Left Shift
- return IsModifierKeyUp([event modifierFlags], kLeftShiftKeyMask,
- kRightShiftKeyMask, NSShiftKeyMask);
- case 60: // Right Shift
- return IsModifierKeyUp([event modifierFlags], kRightShiftKeyMask,
- kLeftShiftKeyMask, NSShiftKeyMask);
-
- case 58: // Left Alt
- return IsModifierKeyUp([event modifierFlags], kLeftAlternateKeyMask,
- kRightAlternateKeyMask, NSAlternateKeyMask);
- case 61: // Right Alt
- return IsModifierKeyUp([event modifierFlags], kRightAlternateKeyMask,
- kLeftAlternateKeyMask, NSAlternateKeyMask);
-
- case 59: // Left Ctrl
- return IsModifierKeyUp([event modifierFlags], kLeftControlKeyMask,
- kRightControlKeyMask, NSControlKeyMask);
- case 62: // Right Ctrl
- return IsModifierKeyUp([event modifierFlags], kRightControlKeyMask,
- kLeftControlKeyMask, NSControlKeyMask);
-
- case 63: // Function
- return ([event modifierFlags] & NSFunctionKeyMask) == 0;
- }
- return false;
-}
-
inline NSString* FilterSpecialCharacter(NSString* str) {
if ([str length] != 1)
return str;
@@ -276,8 +203,8 @@ ui::DomKey DomKeyFromEvent(NSEvent* event) {
blink::WebKeyboardEvent WebKeyboardEventBuilder::Build(NSEvent* event) {
blink::WebKeyboardEvent result;
- result.type = IsKeyUpEvent(event) ? blink::WebInputEvent::KeyUp
- : blink::WebInputEvent::RawKeyDown;
+ result.type = ui::IsKeyUpEvent(event) ? blink::WebInputEvent::KeyUp
+ : blink::WebInputEvent::RawKeyDown;
result.modifiers = ModifiersFromEvent(event);
« no previous file with comments | « no previous file | ui/events/cocoa/cocoa_event_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698