| 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 "ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h" | 5 #include "ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h" |
| 6 | 6 |
| 7 #include <xkbcommon/xkbcommon-names.h> | 7 #include <xkbcommon/xkbcommon-names.h> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 | 89 |
| 90 // U+0022 quote | 90 // U+0022 quote |
| 91 const PrintableSubEntry kU0022[] = { | 91 const PrintableSubEntry kU0022[] = { |
| 92 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 92 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
| 93 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}}; | 93 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}}; |
| 94 | 94 |
| 95 // U+0023 number sign | 95 // U+0023 number sign |
| 96 const PrintableSubEntry kU0023[] = { | 96 const PrintableSubEntry kU0023[] = { |
| 97 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 97 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
| 98 {DomCode::BACKSLASH, 1, 0, 0x0027, kAny, VKEY_OEM_2}, // apostrophe | 98 {DomCode::BACKSLASH, 1, 0, 0x0027, kAny, VKEY_OEM_2}, // apostrophe |
| 99 {DomCode::BACKSLASH, 1, 1, 0x007E, kNone, VKEY_OEM_7}}; // ~, NoSymbol | 99 {DomCode::BACKSLASH, 1, 0, 0x007E, kAny, VKEY_OEM_7}}; // ~, NoSymbol |
| 100 | 100 |
| 101 // U+0024 dollar sign | 101 // U+0024 dollar sign |
| 102 const PrintableSubEntry kU0024[] = { | 102 const PrintableSubEntry kU0024[] = { |
| 103 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 103 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 104 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_8}}; | 104 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_8}}; |
| 105 | 105 |
| 106 // U+0027 apostrophe | 106 // U+0027 apostrophe |
| 107 const PrintableSubEntry kU0027[] = { | 107 const PrintableSubEntry kU0027[] = { |
| 108 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 108 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
| 109 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_7}, | 109 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_7}, |
| 110 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 110 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 111 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_7}, | 111 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_7}, |
| 112 {DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote | 112 {DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote |
| 113 {DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote | 113 {DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote |
| 114 {DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot | 114 {DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot |
| 115 {DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol | 115 {DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol |
| 116 {DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_4}, // ?, NoSymbol | 116 {DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_4}, // ? |
| 117 {DomCode::MINUS, 1, 1, 0x003F, 0x00DD, VKEY_OEM_4}, // ?, Y acute | 117 {DomCode::EQUAL, 1, 0, 0x002A, kAny, VKEY_OEM_PLUS}, // * |
| 118 {DomCode::EQUAL, 1, 1, 0x002A, kNone, VKEY_OEM_PLUS}, // *, NoSymbol | 118 {DomCode::QUOTE, 1, 0, 0x0040, kAny, VKEY_OEM_3}, // @ |
| 119 {DomCode::QUOTE, 1, 1, 0x0040, kNone, VKEY_OEM_3}, // @, NoSymbol | |
| 120 {DomCode::BACKSLASH, 1, 1, 0x002A, kNone, VKEY_OEM_2}, // *, NoSymbol | |
| 121 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x00BD, VKEY_OEM_5}, // *, one half | 119 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x00BD, VKEY_OEM_5}, // *, one half |
| 122 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x0141, VKEY_OEM_2}, // *, L stroke | 120 {DomCode::BACKSLASH, 1, 0, 0x002A, kAny, VKEY_OEM_2}, // *, NoSymbol |
| 123 {DomCode::KEY_Z, 1, 1, 0x0022, kNone, VKEY_Z}, // quote, NoSymbol | 121 {DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}, // quote, R caron |
| 124 {DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}}; // quote, R caron | 122 {DomCode::KEY_Z, 1, 0, 0x0022, kAny, VKEY_Z}}; // quote |
| 125 | 123 |
| 126 // U+0028 left parenthesis | 124 // U+0028 left parenthesis |
| 127 const PrintableSubEntry kU0028[] = { | 125 const PrintableSubEntry kU0028[] = { |
| 128 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, | 126 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, |
| 129 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, | 127 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, |
| 130 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 128 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
| 131 | 129 |
| 132 // U+0029 right parenthesis | 130 // U+0029 right parenthesis |
| 133 const PrintableSubEntry kU0029[] = { | 131 const PrintableSubEntry kU0029[] = { |
| 134 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_0}, | 132 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_0}, |
| 135 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_4}, | 133 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_4}, |
| 136 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; | 134 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; |
| 137 | 135 |
| 138 // U+002A * | 136 // U+002A * |
| 139 const PrintableSubEntry kU002A[] = { | 137 const PrintableSubEntry kU002A[] = { |
| 140 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 138 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 141 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 139 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
| 142 | 140 |
| 143 // U+002B plus sign | 141 // U+002B plus sign |
| 144 const PrintableSubEntry kU002B[] = { | 142 const PrintableSubEntry kU002B[] = { |
| 145 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, | 143 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, |
| 146 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 144 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| 147 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 145 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| 148 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 146 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| 149 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 147 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| 150 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, | 148 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, |
| 151 {DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_PLUS}, // ?, NoSymbol | |
| 152 {DomCode::MINUS, 1, 1, 0x003F, 0x005C, VKEY_OEM_MINUS}, // ?, backslash | 149 {DomCode::MINUS, 1, 1, 0x003F, 0x005C, VKEY_OEM_MINUS}, // ?, backslash |
| 153 {DomCode::MINUS, 1, 1, 0x003F, 0x0151, VKEY_OEM_PLUS}}; // ?, o'' | 150 {DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_PLUS}}; // ? |
| 154 | 151 |
| 155 // U+002C comma | 152 // U+002C comma |
| 156 const PrintableSubEntry kU002C[] = { | 153 const PrintableSubEntry kU002C[] = { |
| 157 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, | 154 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, |
| 158 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, | 155 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, |
| 159 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 156 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
| 160 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, | 157 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, |
| 161 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 158 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
| 162 {DomCode::KEY_V, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 159 {DomCode::KEY_V, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
| 163 {DomCode::KEY_M, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 160 {DomCode::KEY_M, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
| 164 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}}; | 161 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}}; |
| 165 | 162 |
| 166 // U+002D hyphen-minus | 163 // U+002D hyphen-minus |
| 167 const PrintableSubEntry kU002D[] = { | 164 const PrintableSubEntry kU002D[] = { |
| 168 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 165 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
| 169 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 166 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
| 170 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, | 167 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, |
| 171 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, | 168 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, |
| 172 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, | 169 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, |
| 173 {DomCode::SLASH, 1, 0, 0x003D, kAny, VKEY_OEM_MINUS}, // = | 170 {DomCode::SLASH, 1, 0, 0x003D, kAny, VKEY_OEM_MINUS}, // = |
| 174 {DomCode::EQUAL, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol | 171 {DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla |
| 175 {DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla | 172 {DomCode::EQUAL, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}, // _ |
| 176 {DomCode::SLASH, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol | 173 {DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, / |
| 177 {DomCode::SLASH, 1, 1, 0x005F, 0x002A, VKEY_OEM_MINUS}, // _, * | 174 {DomCode::SLASH, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}}; // _ |
| 178 {DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, / | |
| 179 {DomCode::SLASH, 1, 1, 0x005F, 0x006E, VKEY_OEM_MINUS}}; // _, n | |
| 180 | 175 |
| 181 // U+002E full stop | 176 // U+002E full stop |
| 182 const PrintableSubEntry kU002E[] = { | 177 const PrintableSubEntry kU002E[] = { |
| 183 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 178 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
| 184 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 179 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
| 185 {DomCode::KEY_E, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 180 {DomCode::KEY_E, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
| 186 {DomCode::KEY_R, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 181 {DomCode::KEY_R, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
| 187 {DomCode::KEY_O, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 182 {DomCode::KEY_O, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
| 188 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 183 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
| 189 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 184 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 213 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 208 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
| 214 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 209 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
| 215 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_1}, | 210 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 216 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 211 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 217 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, | 212 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, |
| 218 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, | 213 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 219 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, | 214 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, |
| 220 {DomCode::KEY_Z, 0, 0, kAny, kAny, VKEY_OEM_1}, | 215 {DomCode::KEY_Z, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 221 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 216 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
| 222 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; | 217 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; |
| 223 | |
| 224 // U+003D = | 218 // U+003D = |
| 225 const PrintableSubEntry kU003D[] = { | 219 const PrintableSubEntry kU003D[] = { |
| 226 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 220 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
| 227 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 221 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| 228 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 222 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| 229 {DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // % | 223 {DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // % |
| 230 {DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // + | 224 {DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // + |
| 231 {DomCode::MINUS, 1, 1, 0x0025, kNone, VKEY_OEM_PLUS}, // %, NoSymbol | 225 {DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}, // %, - |
| 232 {DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}}; // %, - | 226 {DomCode::MINUS, 1, 0, 0x0025, kAny, VKEY_OEM_PLUS}}; // %, NoSymbol |
| 233 | 227 |
| 234 // U+003F ? | 228 // U+003F ? |
| 235 const PrintableSubEntry kU003F[] = { | 229 const PrintableSubEntry kU003F[] = { |
| 236 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 230 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
| 237 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 231 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
| 238 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 232 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
| 239 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}}; | 233 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}}; |
| 240 | 234 |
| 241 // U+0040 @ | 235 // U+0040 @ |
| 242 const PrintableSubEntry kU0040[] = { | 236 const PrintableSubEntry kU0040[] = { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 269 | 263 |
| 270 // U+005F _ | 264 // U+005F _ |
| 271 const PrintableSubEntry kU005F[] = { | 265 const PrintableSubEntry kU005F[] = { |
| 272 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 266 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
| 273 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}}; | 267 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}}; |
| 274 | 268 |
| 275 // U+0060 grave accent | 269 // U+0060 grave accent |
| 276 const PrintableSubEntry kU0060[] = { | 270 const PrintableSubEntry kU0060[] = { |
| 277 {DomCode::BACKQUOTE, 1, 0, kNone, kAny, VKEY_OEM_3}, // NoSymbol | 271 {DomCode::BACKQUOTE, 1, 0, kNone, kAny, VKEY_OEM_3}, // NoSymbol |
| 278 {DomCode::BACKQUOTE, 1, 0, 0x00AC, kAny, VKEY_OEM_8}, // not | 272 {DomCode::BACKQUOTE, 1, 0, 0x00AC, kAny, VKEY_OEM_8}, // not |
| 279 {DomCode::BACKQUOTE, 1, 1, 0x007E, kNone, VKEY_OEM_3}, // ~, NoSymbol | 273 {DomCode::BACKQUOTE, 1, 0, 0x007E, kAny, VKEY_OEM_3}}; // ~ |
| 280 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0031, VKEY_OEM_3}, // ~, 1 | |
| 281 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x003B, VKEY_OEM_3}, // ~, ; | |
| 282 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0060, VKEY_OEM_3}, // ~, ` | |
| 283 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x00BF, VKEY_OEM_3}, // ~, inverted ? | |
| 284 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0151, VKEY_OEM_3}}; // ~, o'' | |
| 285 | 274 |
| 286 // U+00A7 section | 275 // U+00A7 section |
| 287 const PrintableSubEntry kU00A7[] = { | 276 const PrintableSubEntry kU00A7[] = { |
| 288 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 277 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
| 289 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 278 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
| 290 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 279 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
| 291 {DomCode::BACKQUOTE, 1, 0, 0x00B0, kAny, VKEY_OEM_2}, // degree | 280 {DomCode::BACKQUOTE, 1, 0, 0x00B0, kAny, VKEY_OEM_2}, // degree |
| 292 {DomCode::BACKQUOTE, 1, 0, 0x00BD, kAny, VKEY_OEM_5}}; // one half | 281 {DomCode::BACKQUOTE, 1, 0, 0x00BD, kAny, VKEY_OEM_5}}; // one half |
| 293 | 282 |
| 294 // U+00AB left-pointing double angle quote | 283 // U+00AB left-pointing double angle quote |
| (...skipping 25 matching lines...) Expand all Loading... |
| 320 | 309 |
| 321 // U+00E2 a circumflex | 310 // U+00E2 a circumflex |
| 322 const PrintableSubEntry kU00E2[] = { | 311 const PrintableSubEntry kU00E2[] = { |
| 323 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 312 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
| 324 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 313 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
| 325 | 314 |
| 326 // U+00E4 a diaeresis | 315 // U+00E4 a diaeresis |
| 327 const PrintableSubEntry kU00E4[] = { | 316 const PrintableSubEntry kU00E4[] = { |
| 328 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, | 317 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, |
| 329 {DomCode::QUOTE, 1, 0, 0x00E0, kAny, VKEY_OEM_5}, // a grave | 318 {DomCode::QUOTE, 1, 0, 0x00E0, kAny, VKEY_OEM_5}, // a grave |
| 330 {DomCode::QUOTE, 1, 1, 0x00C4, kNone, VKEY_OEM_7}, // A dia., NoSymbol | 319 {DomCode::QUOTE, 1, 0, 0x00C4, kAny, VKEY_OEM_7}}; // A dia. |
| 331 {DomCode::QUOTE, 1, 1, 0x00C4, 0x015A, VKEY_OEM_7}, // A dia., S acute | |
| 332 {DomCode::QUOTE, 1, 1, 0x00C4, 0x0159, VKEY_OEM_7}}; // A dia., r caron | |
| 333 | 320 |
| 334 // U+00E6 ae | 321 // U+00E6 ae |
| 335 const PrintableSubEntry kU00E6[] = { | 322 const PrintableSubEntry kU00E6[] = { |
| 336 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, | 323 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, |
| 337 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; | 324 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; |
| 338 | 325 |
| 339 // U+00E7 c cedilla | 326 // U+00E7 c cedilla |
| 340 const PrintableSubEntry kU00E7[] = { | 327 const PrintableSubEntry kU00E7[] = { |
| 341 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, | 328 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, |
| 342 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 329 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
| 343 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, | 330 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, |
| 344 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 331 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
| 345 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, | 332 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, |
| 346 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 333 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
| 347 {DomCode::SEMICOLON, 1, 1, 0x00C7, kNone, VKEY_OEM_1}, // C ced., NoSy | 334 {DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}, // C ced., Thorn |
| 348 {DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}}; // C ced., Thorn | 335 {DomCode::SEMICOLON, 1, 0, 0x00C7, kAny, VKEY_OEM_1}}; // C ced., NoSy |
| 349 | 336 |
| 350 // U+00E8 e grave | 337 // U+00E8 e grave |
| 351 const PrintableSubEntry kU00E8[] = { | 338 const PrintableSubEntry kU00E8[] = { |
| 352 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 339 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
| 353 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 340 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 354 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}}; | 341 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}}; |
| 355 | 342 |
| 356 // U+00E9 e acute | 343 // U+00E9 e acute |
| 357 const PrintableSubEntry kU00E9[] = { | 344 const PrintableSubEntry kU00E9[] = { |
| 358 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 345 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 379 // U+00F4 o circumflex | 366 // U+00F4 o circumflex |
| 380 const PrintableSubEntry kU00F4[] = { | 367 const PrintableSubEntry kU00F4[] = { |
| 381 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 368 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
| 382 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}}; | 369 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}}; |
| 383 | 370 |
| 384 // U+00F6 o diaeresis | 371 // U+00F6 o diaeresis |
| 385 const PrintableSubEntry kU00F6[] = { | 372 const PrintableSubEntry kU00F6[] = { |
| 386 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_OEM_3}, | 373 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_OEM_3}, |
| 387 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 374 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| 388 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 375 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
| 389 {DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute | 376 {DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute |
| 390 {DomCode::SEMICOLON, 1, 1, 0x00D6, kNone, VKEY_OEM_3}, // O dia., NoSy | 377 {DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}, // O dia., T ced. |
| 391 {DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}}; // O dia., T ced. | 378 {DomCode::SEMICOLON, 1, 0, 0x00D6, kAny, VKEY_OEM_3}}; // O diaresis |
| 392 | 379 |
| 393 // U+00F8 o stroke | 380 // U+00F8 o stroke |
| 394 const PrintableSubEntry kU00F8[] = { | 381 const PrintableSubEntry kU00F8[] = { |
| 395 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, | 382 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, |
| 396 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; | 383 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; |
| 397 | 384 |
| 398 // U+00F9 u grave | 385 // U+00F9 u grave |
| 399 const PrintableSubEntry kU00F9[] = { | 386 const PrintableSubEntry kU00F9[] = { |
| 400 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, | 387 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, |
| 401 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; | 388 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; |
| 402 | 389 |
| 403 // U+00FA u acute | 390 // U+00FA u acute |
| 404 const PrintableSubEntry kU00FA[] = { | 391 const PrintableSubEntry kU00FA[] = { |
| 405 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 392 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
| 406 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; | 393 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; |
| 407 | 394 |
| 408 // U+00FC u diaeresis | 395 // U+00FC u diaeresis |
| 409 const PrintableSubEntry kU00FC[] = { | 396 const PrintableSubEntry kU00FC[] = { |
| 410 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_W}, | 397 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_W}, |
| 411 {DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave | 398 {DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave |
| 412 {DomCode::MINUS, 1, 1, 0x00DC, kNone, VKEY_OEM_2}, // U dia., NoSy | 399 {DomCode::MINUS, 1, 0, 0x00DC, kAny, VKEY_OEM_2}, // U diaresis |
| 413 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, kNone, VKEY_OEM_1}, // U dia., NoSy | 400 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}, // U dia., L- |
| 414 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}}; // U dia., L- | 401 {DomCode::BRACKET_LEFT, 1, 0, 0x00DC, kAny, VKEY_OEM_1}}; // U diaresis |
| 415 | 402 |
| 416 // U+0103 a breve | 403 // U+0103 a breve |
| 417 const PrintableSubEntry kU0103[] = { | 404 const PrintableSubEntry kU0103[] = { |
| 418 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, | 405 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, |
| 419 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}}; | 406 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}}; |
| 420 | 407 |
| 421 // U+0105 a ogonek | 408 // U+0105 a ogonek |
| 422 const PrintableSubEntry kU0105[] = { | 409 const PrintableSubEntry kU0105[] = { |
| 423 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, | 410 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, |
| 424 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, | 411 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 438 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; | 425 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; |
| 439 | 426 |
| 440 // U+0117 e dot above | 427 // U+0117 e dot above |
| 441 const PrintableSubEntry kU0117[] = { | 428 const PrintableSubEntry kU0117[] = { |
| 442 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 429 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
| 443 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; | 430 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; |
| 444 | 431 |
| 445 // U+0119 e ogonek | 432 // U+0119 e ogonek |
| 446 const PrintableSubEntry kU0119[] = { | 433 const PrintableSubEntry kU0119[] = { |
| 447 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, | 434 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, |
| 448 {DomCode::SLASH, 1, 1, 0x0118, kNone, VKEY_OEM_MINUS}, // E ogonek, NoSy | 435 {DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}, // E ogonek, n |
| 449 {DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}}; // E ogonek, n | 436 {DomCode::SLASH, 1, 0, 0x0118, kAny, VKEY_OEM_MINUS}}; // E ogonek |
| 450 | 437 |
| 451 // U+012F i ogonek | 438 // U+012F i ogonek |
| 452 const PrintableSubEntry kU012F[] = { | 439 const PrintableSubEntry kU012F[] = { |
| 453 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, | 440 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, |
| 454 {DomCode::BRACKET_LEFT, 1, 1, 0x012E, kNone, VKEY_OEM_4}}; // Iogonek, NoSy | 441 {DomCode::BRACKET_LEFT, 1, 0, 0x012E, kAny, VKEY_OEM_4}}; // Iogonek |
| 455 | 442 |
| 456 // U+0142 l stroke | 443 // U+0142 l stroke |
| 457 const PrintableSubEntry kU0142[] = { | 444 const PrintableSubEntry kU0142[] = { |
| 458 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, | 445 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 459 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; | 446 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; |
| 460 | 447 |
| 461 // U+015F s cedilla | 448 // U+015F s cedilla |
| 462 const PrintableSubEntry kU015F[] = { | 449 const PrintableSubEntry kU015F[] = { |
| 463 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, | 450 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 464 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; | 451 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; |
| 465 | 452 |
| 466 // U+0161 s caron | 453 // U+0161 s caron |
| 467 const PrintableSubEntry kU0161[] = { | 454 const PrintableSubEntry kU0161[] = { |
| 468 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, | 455 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, |
| 469 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 456 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
| 470 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 457 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
| 471 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_1}, | 458 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_1}, |
| 472 {DomCode::KEY_F, 0, 0, kAny, kAny, VKEY_F}, | 459 {DomCode::KEY_F, 0, 0, kAny, kAny, VKEY_F}, |
| 473 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; | 460 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; |
| 474 | 461 |
| 475 // U+016B u macron | 462 // U+016B u macron |
| 476 const PrintableSubEntry kU016B[] = { | 463 const PrintableSubEntry kU016B[] = { |
| 477 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 464 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
| 478 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, | 465 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, |
| 479 {DomCode::KEY_X, 0, 0, kAny, kAny, VKEY_X}}; | 466 {DomCode::KEY_X, 0, 0, kAny, kAny, VKEY_X}}; |
| 480 | 467 |
| 481 // U+0173 u ogonek | 468 // U+0173 u ogonek |
| 482 const PrintableSubEntry kU0173[] = { | 469 const PrintableSubEntry kU0173[] = { |
| 483 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 470 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
| 484 {DomCode::SEMICOLON, 1, 1, 0x0172, kNone, VKEY_OEM_3}, // U ogo., NoSy | 471 {DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}, // U ogo., T ced. |
| 485 {DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}}; // U ogo., T ced. | 472 {DomCode::SEMICOLON, 1, 0, 0x0172, kAny, VKEY_OEM_3}}; // U ogonek |
| 486 | 473 |
| 487 // U+017C z dot above | 474 // U+017C z dot above |
| 488 const PrintableSubEntry kU017C[] = { | 475 const PrintableSubEntry kU017C[] = { |
| 489 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 476 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
| 490 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 477 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
| 491 | 478 |
| 492 // U+017E z caron | 479 // U+017E z caron |
| 493 const PrintableSubEntry kU017E[] = { | 480 const PrintableSubEntry kU017E[] = { |
| 494 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 481 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
| 495 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 482 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 size_t close_index = layout_name.find(')', parentheses_index); | 953 size_t close_index = layout_name.find(')', parentheses_index); |
| 967 if (close_index == std::string::npos) | 954 if (close_index == std::string::npos) |
| 968 close_index = layout_name.size(); | 955 close_index = layout_name.size(); |
| 969 *layout_variant = layout_name.substr(parentheses_index + 1, | 956 *layout_variant = layout_name.substr(parentheses_index + 1, |
| 970 close_index - parentheses_index - 1); | 957 close_index - parentheses_index - 1); |
| 971 } else if (dash_index != std::string::npos) { | 958 } else if (dash_index != std::string::npos) { |
| 972 *layout_id = layout_name.substr(0, dash_index); | 959 *layout_id = layout_name.substr(0, dash_index); |
| 973 *layout_variant = layout_name.substr(dash_index + 1); | 960 *layout_variant = layout_name.substr(dash_index + 1); |
| 974 } | 961 } |
| 975 } | 962 } |
| 963 |
| 976 } // namespace ui | 964 } // namespace ui |
| OLD | NEW |