Codebase list mozc / cee212a
Remove obsolete code that was used only in Chromium OS. This CL removes {LEFT|RIGHT}_{ALT|CTRL|SHIFT} support from ibus-mozc, which was originally added for Chromium OS to support Pinyin input but is no longer used. Basically this is just a dead-code removal. Hence no user visible change is expected. BUG=none TEST=compile Hiroshi Sumita authored 8 years ago Yohei Yukawa committed 8 years ago
5 changed file(s) with 76 addition(s) and 100 deletion(s). Raw diff Collapse all Expand all
00 MAJOR=2
11 MINOR=17
2 BUILD=2109
2 BUILD=2110
33 REVISION=102
44 # NACL_DICTIONARY_VERSION is the target version of the system dictionary to be
55 # downloaded by NaCl Mozc.
3838 namespace ibus {
3939
4040 namespace {
41 // TODO(hsumita): Removes this class, and moves |data_| into member
42 // variables of KeyEventhandler.
43 class AdditionalModifiersData {
44 public:
45 AdditionalModifiersData() {
46 data_[commands::KeyEvent::LEFT_ALT] = commands::KeyEvent::ALT;
47 data_[commands::KeyEvent::RIGHT_ALT] = commands::KeyEvent::ALT;
48 data_[commands::KeyEvent::LEFT_CTRL] = commands::KeyEvent::CTRL;
49 data_[commands::KeyEvent::RIGHT_CTRL] = commands::KeyEvent::CTRL;
50 data_[commands::KeyEvent::LEFT_SHIFT] = commands::KeyEvent::SHIFT;
51 data_[commands::KeyEvent::RIGHT_SHIFT] = commands::KeyEvent::SHIFT;
52 }
53 const map<uint32, commands::KeyEvent::ModifierKey> &data() {
54 return data_;
55 }
56
57 private:
58 map<uint32, commands::KeyEvent::ModifierKey> data_;
59 };
60
61 // TODO(hsumita): Moves this function into member functions of
62 // KeyEventHandler.
63 void AddAdditionalModifiers(
64 set<commands::KeyEvent::ModifierKey> *modifier_keys_set) {
65 DCHECK(modifier_keys_set);
66
67 const map<uint32, commands::KeyEvent::ModifierKey> &data =
68 Singleton<AdditionalModifiersData>::get()->data();
69
70 // Adds MODIFIER if there are (LEFT|RIGHT)_MODIFIER like LEFT_SHIFT.
71 for (set<commands::KeyEvent::ModifierKey>::const_iterator it =
72 modifier_keys_set->begin(); it != modifier_keys_set->end(); ++it) {
73 map<uint32, commands::KeyEvent::ModifierKey>::const_iterator item =
74 data.find(*it);
75 if (item != data.end()) {
76 modifier_keys_set->insert(item->second);
77 }
78 }
79 }
80
8141 bool IsModifierToBeSentOnKeyUp(const commands::KeyEvent &key_event) {
8242 if (key_event.modifier_keys_size() == 0) {
8343 return false;
225185 for (size_t i = 0; i < key_event->modifier_keys_size(); ++i) {
226186 modifiers_to_be_sent_.insert(key_event->modifier_keys(i));
227187 }
228 AddAdditionalModifiers(&modifiers_to_be_sent_);
229188 }
230189 currently_pressed_modifiers_.insert(keyval);
231190 return false;
4949 handler_.reset(new KeyEventHandler);
5050
5151 keyval_to_modifier_.clear();
52 keyval_to_modifier_[IBUS_Shift_L] = commands::KeyEvent::LEFT_SHIFT;
53 keyval_to_modifier_[IBUS_Shift_R] = commands::KeyEvent::RIGHT_SHIFT;
54 keyval_to_modifier_[IBUS_Control_L] = commands::KeyEvent::LEFT_CTRL;
55 keyval_to_modifier_[IBUS_Control_R] = commands::KeyEvent::RIGHT_CTRL;
56 keyval_to_modifier_[IBUS_Alt_L] = commands::KeyEvent::LEFT_ALT;
57 keyval_to_modifier_[IBUS_Alt_R] = commands::KeyEvent::RIGHT_ALT;
52 keyval_to_modifier_[IBUS_Shift_L] = commands::KeyEvent::SHIFT;
53 keyval_to_modifier_[IBUS_Shift_R] = commands::KeyEvent::SHIFT;
54 keyval_to_modifier_[IBUS_Control_L] = commands::KeyEvent::CTRL;
55 keyval_to_modifier_[IBUS_Control_R] = commands::KeyEvent::CTRL;
56 keyval_to_modifier_[IBUS_Alt_L] = commands::KeyEvent::ALT;
57 keyval_to_modifier_[IBUS_Alt_R] = commands::KeyEvent::ALT;
5858 }
5959
6060 // Currently this function does not supports special keys.
6262 const map<guint, commands::KeyEvent::ModifierKey>::const_iterator it =
6363 keyval_to_modifier_.find(keyval);
6464 if (it != keyval_to_modifier_.end()) {
65 key->add_modifier_keys(it->second);
65 bool found = false;
66 for (int i = 0; i < key->modifier_keys_size(); ++i) {
67 if (key->modifier_keys(i) == it->second) {
68 found = true;
69 break;
70 }
71 }
72 if (!found) {
73 key->add_modifier_keys(it->second);
74 }
6675 } else {
6776 key->set_key_code(keyval);
6877 }
148157 EXPECT_FALSE(handler_->GetKeyEvent(
149158 IBUS_Alt_L, kDummyKeycode, IBUS_MOD1_MASK,
150159 config::Config::ROMAN, true, &key));
151 EXPECT_MODIFIERS_TO_BE_SENT(
152 (commands::KeyEvent::LEFT_ALT | commands::KeyEvent::ALT));
160 EXPECT_MODIFIERS_TO_BE_SENT(commands::KeyEvent::ALT);
153161 EXPECT_MODIFIERS_PRESSED();
154162
155163 key.Clear();
213221 // Shift down
214222 EXPECT_FALSE(ProcessKey(false, IBUS_Shift_L, &key));
215223 EXPECT_TRUE(IsPressed(IBUS_Shift_L));
216 EXPECT_MODIFIERS_TO_BE_SENT(
217 (commands::KeyEvent::LEFT_SHIFT | commands::KeyEvent::SHIFT));
224 EXPECT_MODIFIERS_TO_BE_SENT(commands::KeyEvent::SHIFT);
218225
219226 // "a" down
220227 key.Clear();
240247 // Shift down
241248 EXPECT_FALSE(ProcessKey(false, IBUS_Shift_L, &key));
242249 EXPECT_TRUE(IsPressed(IBUS_Shift_L));
243 EXPECT_MODIFIERS_TO_BE_SENT(
244 (commands::KeyEvent::LEFT_SHIFT | commands::KeyEvent::SHIFT));
250 EXPECT_MODIFIERS_TO_BE_SENT(commands::KeyEvent::SHIFT);
245251
246252 // "0" down
247253 key.Clear();
270276 // Alt down
271277 EXPECT_FALSE(ProcessKey(false, IBUS_Alt_L, &key));
272278 EXPECT_TRUE(IsPressed(IBUS_Alt_L));
273 EXPECT_MODIFIERS_TO_BE_SENT(
274 (commands::KeyEvent::LEFT_ALT | commands::KeyEvent::ALT));
279 EXPECT_MODIFIERS_TO_BE_SENT(commands::KeyEvent::ALT);
275280
276281 // "a" down
277282 key.Clear();
278283 key.add_modifier_keys(commands::KeyEvent::ALT);
279 key.add_modifier_keys(commands::KeyEvent::LEFT_ALT);
280284 EXPECT_TRUE(ProcessKey(false, 'a', &key));
281285 EXPECT_TRUE(IsPressed(IBUS_Alt_L));
282286 EXPECT_MODIFIERS_TO_BE_SENT(kNoModifiers);
284288 // "a" up
285289 key.Clear();
286290 key.add_modifier_keys(commands::KeyEvent::ALT);
287 key.add_modifier_keys(commands::KeyEvent::LEFT_ALT);
288291 EXPECT_FALSE(ProcessKey(true, 'a', &key));
289292 EXPECT_TRUE(IsPressed(IBUS_Alt_L));
290293 EXPECT_MODIFIERS_TO_BE_SENT(kNoModifiers);
302305 // Ctrl down
303306 EXPECT_FALSE(ProcessKey(false, IBUS_Control_L, &key));
304307 EXPECT_TRUE(IsPressed(IBUS_Control_L));
305 EXPECT_MODIFIERS_TO_BE_SENT(
306 (commands::KeyEvent::LEFT_CTRL | commands::KeyEvent::CTRL));
308 EXPECT_MODIFIERS_TO_BE_SENT(commands::KeyEvent::CTRL);
307309
308310 // "a" down
309311 key.Clear();
310312 key.add_modifier_keys(commands::KeyEvent::CTRL);
311 key.add_modifier_keys(commands::KeyEvent::LEFT_CTRL);
312313 EXPECT_TRUE(ProcessKey(false, 'a', &key));
313314 EXPECT_TRUE(IsPressed(IBUS_Control_L));
314315 EXPECT_MODIFIERS_TO_BE_SENT(kNoModifiers);
316317 // "a" up
317318 key.Clear();
318319 key.add_modifier_keys(commands::KeyEvent::CTRL);
319 key.add_modifier_keys(commands::KeyEvent::LEFT_CTRL);
320320 EXPECT_FALSE(ProcessKey(true, 'a', &key));
321321 EXPECT_TRUE(IsPressed(IBUS_Control_L));
322322 EXPECT_MODIFIERS_TO_BE_SENT(kNoModifiers);
336336 EXPECT_FALSE(ProcessKeyWithCapsLock(false, IBUS_Shift_L, &key));
337337 EXPECT_TRUE(IsPressed(IBUS_Shift_L));
338338 EXPECT_MODIFIERS_TO_BE_SENT(
339 (commands::KeyEvent::CAPS | commands::KeyEvent::LEFT_SHIFT |
340 commands::KeyEvent::SHIFT));
339 (commands::KeyEvent::CAPS | commands::KeyEvent::SHIFT));
341340
342341 // "a" down
343342 key.Clear();
364363 // Left-Shift down
365364 EXPECT_FALSE(ProcessKey(false, IBUS_Shift_L, &key));
366365 EXPECT_TRUE(IsPressed(IBUS_Shift_L));
367 EXPECT_MODIFIERS_TO_BE_SENT(
368 (commands::KeyEvent::LEFT_SHIFT | commands::KeyEvent::SHIFT));
366 EXPECT_MODIFIERS_TO_BE_SENT(commands::KeyEvent::SHIFT);
369367
370368 // Right-Shift down
371369 key.Clear();
372370 key.add_modifier_keys(commands::KeyEvent::SHIFT);
373 key.add_modifier_keys(commands::KeyEvent::LEFT_SHIFT);
374371 EXPECT_FALSE(ProcessKey(false, IBUS_Shift_R, &key));
375372 EXPECT_TRUE(IsPressed(IBUS_Shift_L));
376373 EXPECT_TRUE(IsPressed(IBUS_Shift_R));
377 EXPECT_MODIFIERS_TO_BE_SENT(
378 (commands::KeyEvent::LEFT_SHIFT | commands::KeyEvent::RIGHT_SHIFT |
379 commands::KeyEvent::SHIFT));
374 EXPECT_MODIFIERS_TO_BE_SENT(commands::KeyEvent::SHIFT);
380375 }
381376
382377 TEST_F(KeyEventHandlerTest, ProcessModifiers) {
390385 EXPECT_TRUE(ProcessKey(true, IBUS_Shift_L, &key));
391386 EXPECT_NO_MODIFIERS_PRESSED();
392387 EXPECT_MODIFIERS_TO_BE_SENT(kNoModifiers);
393 EXPECT_EQ((commands::KeyEvent::SHIFT | commands::KeyEvent::LEFT_SHIFT),
394 KeyEventUtil::GetModifiers(key));
388 EXPECT_EQ(commands::KeyEvent::SHIFT, KeyEventUtil::GetModifiers(key));
395389
396390 // Shift down => Ctrl down => Shift up => Alt down => Ctrl up => Alt up
397391 key.Clear();
408402 EXPECT_TRUE(ProcessKey(true, IBUS_Alt_L, &key));
409403 EXPECT_NO_MODIFIERS_PRESSED();
410404 EXPECT_MODIFIERS_TO_BE_SENT(kNoModifiers);
411 EXPECT_EQ((commands::KeyEvent::ALT | commands::KeyEvent::LEFT_ALT |
412 commands::KeyEvent::CTRL | commands::KeyEvent::LEFT_CTRL |
413 commands::KeyEvent::SHIFT | commands::KeyEvent::LEFT_SHIFT),
405 EXPECT_EQ((commands::KeyEvent::ALT | commands::KeyEvent::CTRL |
406 commands::KeyEvent::SHIFT),
414407 KeyEventUtil::GetModifiers(key));
415408 }
416409
2929 #include "unix/ibus/key_translator.h"
3030
3131 #include <map>
32 #include <set>
3233 #include <string>
3334
3435 #include "base/logging.h"
129130 // - IBUS_Kana_Lock? IBUS_KEY_Kana_Shift?
130131 };
131132
132 const struct ModifierKeyMap {
133 const struct ModifierKeyMapData {
133134 guint from;
134135 mozc::commands::KeyEvent::ModifierKey to;
135 } modifier_key_map[] = {
136 {IBUS_Shift_L, mozc::commands::KeyEvent::LEFT_SHIFT},
137 {IBUS_Shift_R, mozc::commands::KeyEvent::RIGHT_SHIFT},
138 {IBUS_Control_L, mozc::commands::KeyEvent::LEFT_CTRL},
139 {IBUS_Control_R, mozc::commands::KeyEvent::RIGHT_CTRL},
140 {IBUS_Alt_L, mozc::commands::KeyEvent::LEFT_ALT},
141 {IBUS_Alt_R, mozc::commands::KeyEvent::RIGHT_ALT},
136 } modifier_key_map_data[] = {
137 {IBUS_Shift_L, mozc::commands::KeyEvent::SHIFT},
138 {IBUS_Shift_R, mozc::commands::KeyEvent::SHIFT},
139 {IBUS_Control_L, mozc::commands::KeyEvent::CTRL},
140 {IBUS_Control_R, mozc::commands::KeyEvent::CTRL},
141 {IBUS_Alt_L, mozc::commands::KeyEvent::ALT},
142 {IBUS_Alt_R, mozc::commands::KeyEvent::ALT},
142143 {IBUS_LOCK_MASK, mozc::commands::KeyEvent::CAPS},
143144 };
144145
145 const struct ModifierMaskMap {
146 const struct ModifierMaskMapData {
146147 guint from;
147148 mozc::commands::KeyEvent::ModifierKey to;
148 } modifier_mask_map[] = {
149 } modifier_mask_map_data[] = {
149150 {IBUS_SHIFT_MASK, mozc::commands::KeyEvent::SHIFT},
150151 {IBUS_CONTROL_MASK, mozc::commands::KeyEvent::CTRL},
151152 {IBUS_MOD1_MASK, mozc::commands::KeyEvent::ALT},
415416 }
416417
417418 if (i->first & modifiers) {
418 out_event->add_modifier_keys(i->second);
419 // Add a modifier key if doesn't exist.
420 commands::KeyEvent::ModifierKey modifier = i->second;
421 bool found = false;
422 for (int i = 0; i < out_event->modifier_keys_size(); ++i) {
423 if (modifier == out_event->modifier_keys(i)) {
424 found = true;
425 break;
426 }
427 }
428 if (!found) {
429 out_event->add_modifier_keys(modifier);
430 }
419431 }
420432 }
421433
427439 CHECK(special_key_map_.insert(make_pair(special_key_map[i].from,
428440 special_key_map[i].to)).second);
429441 }
430 for (int i = 0; i < arraysize(modifier_key_map); ++i) {
431 CHECK(modifier_key_map_.insert(make_pair(modifier_key_map[i].from,
432 modifier_key_map[i].to)).second);
433 }
434 for (int i = 0; i < arraysize(modifier_mask_map); ++i) {
435 CHECK(modifier_mask_map_.insert(make_pair(modifier_mask_map[i].from,
436 modifier_mask_map[i].to)).second);
442 for (int i = 0; i < arraysize(modifier_key_map_data); ++i) {
443 CHECK(modifier_key_map_.insert(
444 make_pair(modifier_key_map_data[i].from,
445 modifier_key_map_data[i].to)).second);
446 }
447 for (int i = 0; i < arraysize(modifier_mask_map_data); ++i) {
448 CHECK(modifier_mask_map_.insert(
449 make_pair(modifier_mask_map_data[i].from,
450 modifier_mask_map_data[i].to)).second);
437451 }
438452 for (int i = 0; i < arraysize(kana_map_jp); ++i) {
439453 CHECK(kana_map_jp_.insert(
497497 IsContained(commands::KeyEvent::ALT, out.modifier_keys());
498498 }
499499
500 TEST_F(KeyTranslatorTest, MultipleShiftKeysTest) {
501 commands::KeyEvent out;
502
503 // Hit Shift_L with shift modifier (typically Shift_R).
504 EXPECT_TRUE(translator_->Translate(IBUS_Shift_L, 0, IBUS_SHIFT_MASK,
505 config::Config::ROMAN, true, &out));
506 EXPECT_EQ(1, out.modifier_keys_size());
507 IsContained(commands::KeyEvent::SHIFT, out.modifier_keys());
508 }
509
500510 TEST_F(KeyTranslatorTest, TranslateUnknow) {
501511 commands::KeyEvent out;
502512 EXPECT_FALSE(translator_->Translate(IBUS_VoidSymbol, 0, 0,
534544 EXPECT_TRUE(translator_->Translate(
535545 IBUS_Shift_L, 0, 0, config::Config::ROMAN, true, &out));
536546 EXPECT_EQ(1, out.modifier_keys_size());
537 EXPECT_EQ(commands::KeyEvent::LEFT_SHIFT, out.modifier_keys(0));
547 EXPECT_EQ(commands::KeyEvent::SHIFT, out.modifier_keys(0));
538548
539549 // Just tap right_shift key
540550 out.Clear();
541551 EXPECT_TRUE(translator_->Translate(
542552 IBUS_Shift_R, 0, 0, config::Config::ROMAN, true, &out));
543553 EXPECT_EQ(1, out.modifier_keys_size());
544 EXPECT_EQ(commands::KeyEvent::RIGHT_SHIFT, out.modifier_keys(0));
554 EXPECT_EQ(commands::KeyEvent::SHIFT, out.modifier_keys(0));
545555
546556 // Just tap left_ctrl key
547557 out.Clear();
548558 EXPECT_TRUE(translator_->Translate(
549559 IBUS_Control_L, 0, 0, config::Config::ROMAN, true, &out));
550560 EXPECT_EQ(1, out.modifier_keys_size());
551 EXPECT_EQ(commands::KeyEvent::LEFT_CTRL, out.modifier_keys(0));
561 EXPECT_EQ(commands::KeyEvent::CTRL, out.modifier_keys(0));
552562
553563 // Just tap right_ctrl key
554564 out.Clear();
555565 EXPECT_TRUE(translator_->Translate(
556566 IBUS_Control_R, 0, 0, config::Config::ROMAN, true, &out));
557567 EXPECT_EQ(1, out.modifier_keys_size());
558 EXPECT_EQ(commands::KeyEvent::RIGHT_CTRL, out.modifier_keys(0));
568 EXPECT_EQ(commands::KeyEvent::CTRL, out.modifier_keys(0));
559569
560570 // Just tap left_alt key
561571 out.Clear();
562572 EXPECT_TRUE(translator_->Translate(
563573 IBUS_Alt_L, 0, 0, config::Config::ROMAN, true, &out));
564574 EXPECT_EQ(1, out.modifier_keys_size());
565 EXPECT_EQ(commands::KeyEvent::LEFT_ALT, out.modifier_keys(0));
575 EXPECT_EQ(commands::KeyEvent::ALT, out.modifier_keys(0));
566576
567577 // Just tap right_alt key
568578 out.Clear();
569579 EXPECT_TRUE(translator_->Translate(
570580 IBUS_Alt_R, 0, 0, config::Config::ROMAN, true, &out));
571581 EXPECT_EQ(1, out.modifier_keys_size());
572 EXPECT_EQ(commands::KeyEvent::RIGHT_ALT, out.modifier_keys(0));
582 EXPECT_EQ(commands::KeyEvent::ALT, out.modifier_keys(0));
573583 }
574584
575585 } // namespace ibus