1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ui/events/event.h" 6 7 namespace arc { 8 IsControlChar(const ui::KeyEvent * event)9bool IsControlChar(const ui::KeyEvent* event) { 10 // 0x00-0x1f (C0 controls), 0x7f (DEL), and 0x80-0x9f (C1 controls) are 11 // considered as a control character. See: 12 // https://en.wikipedia.org/wiki/Unicode_control_characters They are control 13 // characters and not treated as a text insertion. 14 const base::char16 ch = event->GetCharacter(); 15 const bool is_control_char = 16 (0x00 <= ch && ch <= 0x1f) || (0x7f <= ch && ch <= 0x9f); 17 return is_control_char; 18 } 19 HasModifier(const ui::KeyEvent * event)20bool HasModifier(const ui::KeyEvent* event) { 21 constexpr int kModifierMask = ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | 22 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN | 23 ui::EF_ALTGR_DOWN | ui::EF_MOD3_DOWN; 24 return (event->flags() & kModifierMask) != 0; 25 } 26 27 } // namespace arc 28