@@ -404,71 +404,64 @@ void TextInputChannel::SendStateUpdate(const TextInputModel& model) {
404404 channel_->InvokeMethod (kUpdateEditingStateMethod , std::move (args));
405405}
406406
407- bool TextInputChannel::FilterEvent (Ecore_Event_Key* keyDownEvent ) {
407+ bool TextInputChannel::FilterEvent (Ecore_Event_Key* event ) {
408408 bool handled = false ;
409409
410410#ifdef WEARABLE_PROFILE
411411 // Hardware keyboard not supported on watches.
412- bool isIME = true ;
412+ bool is_ime = true ;
413413#else
414- bool isIME = strcmp (ecore_device_name_get (keyDownEvent ->dev ), " ime" ) == 0 ;
414+ bool is_ime = strcmp (ecore_device_name_get (event ->dev ), " ime" ) == 0 ;
415415#endif
416416
417- Ecore_IMF_Event_Key_Down ecoreKeyDownEvent;
418- ecoreKeyDownEvent.keyname = keyDownEvent->keyname ;
419- ecoreKeyDownEvent.key = keyDownEvent->key ;
420- ecoreKeyDownEvent.string = keyDownEvent->string ;
421- ecoreKeyDownEvent.compose = keyDownEvent->compose ;
422- ecoreKeyDownEvent.timestamp = keyDownEvent->timestamp ;
423- ecoreKeyDownEvent.modifiers =
424- EcoreInputModifierToEcoreIMFModifier (keyDownEvent->modifiers );
425- ecoreKeyDownEvent.locks =
426- EcoreInputModifierToEcoreIMFLock (keyDownEvent->modifiers );
427- ecoreKeyDownEvent.dev_name = isIME ? " ime" : " " ;
428- ecoreKeyDownEvent.keycode = keyDownEvent->keycode ;
429-
430- if (isIME && strcmp (keyDownEvent->key , " Select" ) == 0 ) {
417+ Ecore_IMF_Event_Key_Down imf_event;
418+ imf_event.keyname = event->keyname ;
419+ imf_event.key = event->key ;
420+ imf_event.string = event->string ;
421+ imf_event.compose = event->compose ;
422+ imf_event.timestamp = event->timestamp ;
423+ imf_event.modifiers = EcoreInputModifierToEcoreIMFModifier (event->modifiers );
424+ imf_event.locks = EcoreInputModifierToEcoreIMFLock (event->modifiers );
425+ imf_event.dev_name = is_ime ? " ime" : " " ;
426+ imf_event.keycode = event->keycode ;
427+
428+ if (is_ime && strcmp (event->key , " Select" ) == 0 ) {
431429 if (engine_->device_profile == DeviceProfile::kWearable ) {
432430 // FIXME: for wearable
433431 in_select_mode_ = true ;
434432 FT_LOGI (" Set select mode[true]" );
435433 }
436434 }
437435
438- if (isIME) {
439- if (!strcmp (keyDownEvent->key , " Left" ) ||
440- !strcmp (keyDownEvent->key , " Right" ) ||
441- !strcmp (keyDownEvent->key , " Up" ) ||
442- !strcmp (keyDownEvent->key , " Down" ) ||
443- !strcmp (keyDownEvent->key , " End" ) ||
444- !strcmp (keyDownEvent->key , " Home" ) ||
445- !strcmp (keyDownEvent->key , " BackSpace" ) ||
446- !strcmp (keyDownEvent->key , " Delete" ) ||
447- (!strcmp (keyDownEvent->key , " Select" ) && !in_select_mode_)) {
436+ if (is_ime) {
437+ if (!strcmp (event->key , " Left" ) || !strcmp (event->key , " Right" ) ||
438+ !strcmp (event->key , " Up" ) || !strcmp (event->key , " Down" ) ||
439+ !strcmp (event->key , " End" ) || !strcmp (event->key , " Home" ) ||
440+ !strcmp (event->key , " BackSpace" ) || !strcmp (event->key , " Delete" ) ||
441+ (!strcmp (event->key , " Select" ) && !in_select_mode_)) {
448442 // Force redirect to fallback!(especially on TV)
449443 // If you don't do this, it affects the input panel.
450444 // For example, when the left key of the input panel is pressed, the focus
451445 // of the input panel is shifted to left!
452446 // What we want is to move only the cursor on the text editor.
453447 ResetCurrentContext ();
454- FT_LOGW (" Force redirect IME key-event[%s] to fallback" ,
455- keyDownEvent->keyname );
448+ FT_LOGW (" Force redirect IME key-event[%s] to fallback" , event->keyname );
456449 return false ;
457450 }
458451 }
459452
460453 handled = ecore_imf_context_filter_event (
461454 imf_context_, ECORE_IMF_EVENT_KEY_DOWN,
462- reinterpret_cast <Ecore_IMF_Event*>(&ecoreKeyDownEvent ));
455+ reinterpret_cast <Ecore_IMF_Event*>(&imf_event ));
463456
464457 if (handled) {
465- last_handled_ecore_event_keyname_ = keyDownEvent ->keyname ;
458+ last_handled_ecore_event_keyname_ = event ->keyname ;
466459 }
467460
468- FT_LOGI (" The %skey-event[%s] are%s filtered" , isIME ? " IME " : " " ,
469- keyDownEvent ->keyname , handled ? " " : " not" );
461+ FT_LOGI (" The %skey-event[%s] are%s filtered" , is_ime ? " IME " : " " ,
462+ event ->keyname , handled ? " " : " not" );
470463
471- if (!handled && !strcmp (keyDownEvent ->key , " Return" ) && in_select_mode_ &&
464+ if (!handled && !strcmp (event ->key , " Return" ) && in_select_mode_ &&
472465 engine_->device_profile == DeviceProfile::kWearable ) {
473466 in_select_mode_ = false ;
474467 handled = true ;
@@ -478,61 +471,60 @@ bool TextInputChannel::FilterEvent(Ecore_Event_Key* keyDownEvent) {
478471 return handled;
479472}
480473
481- void TextInputChannel::NonIMFFallback (Ecore_Event_Key* keyDownEvent ) {
482- FT_LOGI (" NonIMFFallback key name [%s]" , keyDownEvent ->keyname );
474+ void TextInputChannel::NonIMFFallback (Ecore_Event_Key* event ) {
475+ FT_LOGI (" NonIMFFallback key name [%s]" , event ->keyname );
483476
484477 // For mobile, fix me!
485478 if (engine_->device_profile == DeviceProfile::kMobile &&
486479 edit_status_ == EditStatus::kPreeditEnd ) {
487480 SetEditStatus (EditStatus::kNone );
488- FT_LOGW (" Ignore key-event[%s]!" , keyDownEvent ->keyname );
481+ FT_LOGW (" Ignore key-event[%s]!" , event ->keyname );
489482 return ;
490483 }
491484
492- bool select = !strcmp (keyDownEvent ->key , " Select" );
485+ bool select = !strcmp (event ->key , " Select" );
493486 bool is_filtered = true ;
494- if (!strcmp (keyDownEvent ->key , " Left" )) {
487+ if (!strcmp (event ->key , " Left" )) {
495488 if (active_model_ && active_model_->MoveCursorBack ()) {
496489 SendStateUpdate (*active_model_);
497490 }
498- } else if (!strcmp (keyDownEvent ->key , " Right" )) {
491+ } else if (!strcmp (event ->key , " Right" )) {
499492 if (active_model_ && active_model_->MoveCursorForward ()) {
500493 SendStateUpdate (*active_model_);
501494 }
502- } else if (!strcmp (keyDownEvent ->key , " End" )) {
495+ } else if (!strcmp (event ->key , " End" )) {
503496 if (active_model_) {
504497 active_model_->MoveCursorToEnd ();
505498 SendStateUpdate (*active_model_);
506499 }
507- } else if (!strcmp (keyDownEvent ->key , " Home" )) {
500+ } else if (!strcmp (event ->key , " Home" )) {
508501 if (active_model_) {
509502 active_model_->MoveCursorToBeginning ();
510503 SendStateUpdate (*active_model_);
511504 }
512- } else if (!strcmp (keyDownEvent ->key , " BackSpace" )) {
505+ } else if (!strcmp (event ->key , " BackSpace" )) {
513506 if (active_model_ && active_model_->Backspace ()) {
514507 SendStateUpdate (*active_model_);
515508 }
516- } else if (!strcmp (keyDownEvent ->key , " Delete" )) {
509+ } else if (!strcmp (event ->key , " Delete" )) {
517510 if (active_model_ && active_model_->Delete ()) {
518511 SendStateUpdate (*active_model_);
519512 }
520- } else if (!strcmp (keyDownEvent->key , " Return" ) ||
521- (select && !in_select_mode_)) {
513+ } else if (!strcmp (event->key , " Return" ) || (select && !in_select_mode_)) {
522514 if (active_model_) {
523515 EnterPressed (active_model_.get (), select);
524516 }
525- } else if (keyDownEvent ->string && strlen (keyDownEvent ->string ) == 1 &&
526- IsASCIIPrintableKey (keyDownEvent ->string [0 ])) {
517+ } else if (event ->string && strlen (event ->string ) == 1 &&
518+ IsASCIIPrintableKey (event ->string [0 ])) {
527519 if (active_model_) {
528- active_model_->AddCodePoint (keyDownEvent ->string [0 ]);
520+ active_model_->AddCodePoint (event ->string [0 ]);
529521 SendStateUpdate (*active_model_);
530522 }
531523 } else {
532524 is_filtered = false ;
533525 }
534526 if (!active_model_ && is_filtered) {
535- engine_->platform_view_channel ->SendKeyEvent (keyDownEvent , true );
527+ engine_->platform_view_channel ->SendKeyEvent (event , true );
536528 }
537529 SetEditStatus (EditStatus::kNone );
538530}
0 commit comments