| OLD | NEW |
| 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 "remoting/host/linux/unicode_to_keysym.h" | 5 #include "remoting/host/linux/unicode_to_keysym.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #define XK_MISCELLANY | 8 #define XK_MISCELLANY |
| 9 #define XK_XKB_KEYS | 9 #define XK_XKB_KEYS |
| 10 #define XK_LATIN1 | 10 #define XK_LATIN1 |
| (...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 814 { XK_Hangul_AraeA, 0x318d }, | 814 { XK_Hangul_AraeA, 0x318d }, |
| 815 { XK_Hangul_AraeAE, 0x318e }, | 815 { XK_Hangul_AraeAE, 0x318e }, |
| 816 }; | 816 }; |
| 817 | 817 |
| 818 bool CompareCodePair(const CodePair& pair, uint32_t unicode) { | 818 bool CompareCodePair(const CodePair& pair, uint32_t unicode) { |
| 819 return pair.unicode < unicode; | 819 return pair.unicode < unicode; |
| 820 } | 820 } |
| 821 | 821 |
| 822 } // namespace | 822 } // namespace |
| 823 | 823 |
| 824 void GetKeySymsForUnicode(uint32_t unicode, std::vector<uint32_t>* keysyms) { | 824 std::vector<uint32_t> GetKeySymsForUnicode(uint32_t unicode) { |
| 825 keysyms->clear(); | 825 std::vector<uint32_t> keysyms; |
| 826 | 826 |
| 827 // Latin-1 characters have the same values in Unicode and KeySym. | 827 // Latin-1 characters have the same values in Unicode and KeySym. |
| 828 if ((unicode >= 0x0020 && unicode <= 0x007e) || | 828 if ((unicode >= 0x0020 && unicode <= 0x007e) || |
| 829 (unicode >= 0x00a0 && unicode <= 0x00ff)) { | 829 (unicode >= 0x00a0 && unicode <= 0x00ff)) { |
| 830 keysyms->push_back(unicode); | 830 keysyms.push_back(unicode); |
| 831 } | 831 } |
| 832 | 832 |
| 833 const CodePair* map_end = kKeySymUnicodeMap + arraysize(kKeySymUnicodeMap); | 833 const CodePair* map_end = kKeySymUnicodeMap + arraysize(kKeySymUnicodeMap); |
| 834 const CodePair* pair = | 834 const CodePair* pair = |
| 835 std::lower_bound(kKeySymUnicodeMap, map_end, unicode, &CompareCodePair); | 835 std::lower_bound(kKeySymUnicodeMap, map_end, unicode, &CompareCodePair); |
| 836 while (pair != map_end && pair->unicode == unicode) { | 836 while (pair != map_end && pair->unicode == unicode) { |
| 837 keysyms->push_back(pair->keysym); | 837 keysyms.push_back(pair->keysym); |
| 838 ++pair; | 838 ++pair; |
| 839 } | 839 } |
| 840 | 840 |
| 841 keysyms->push_back(0x01000000 | unicode); | 841 keysyms.push_back(0x01000000 | unicode); |
| 842 return keysyms; |
| 842 } | 843 } |
| 843 | 844 |
| 844 } // namespace remoting | 845 } // namespace remoting |
| OLD | NEW |