@@ -399,71 +399,64 @@ void TextInputChannel::SendStateUpdate(const flutter::TextInputModel& model) {
399399 channel_->InvokeMethod (kUpdateEditingStateMethod , std::move (args));
400400}
401401
402- bool TextInputChannel::FilterEvent (Ecore_Event_Key* keyDownEvent ) {
402+ bool TextInputChannel::FilterEvent (Ecore_Event_Key* event ) {
403403 bool handled = false ;
404404
405405#ifdef WEARABLE_PROFILE
406406 // Hardware keyboard not supported on watches.
407- bool isIME = true ;
407+ bool is_ime = true ;
408408#else
409- bool isIME = strcmp (ecore_device_name_get (keyDownEvent ->dev ), " ime" ) == 0 ;
409+ bool is_ime = strcmp (ecore_device_name_get (event ->dev ), " ime" ) == 0 ;
410410#endif
411411
412- Ecore_IMF_Event_Key_Down ecoreKeyDownEvent;
413- ecoreKeyDownEvent.keyname = keyDownEvent->keyname ;
414- ecoreKeyDownEvent.key = keyDownEvent->key ;
415- ecoreKeyDownEvent.string = keyDownEvent->string ;
416- ecoreKeyDownEvent.compose = keyDownEvent->compose ;
417- ecoreKeyDownEvent.timestamp = keyDownEvent->timestamp ;
418- ecoreKeyDownEvent.modifiers =
419- EcoreInputModifierToEcoreIMFModifier (keyDownEvent->modifiers );
420- ecoreKeyDownEvent.locks =
421- EcoreInputModifierToEcoreIMFLock (keyDownEvent->modifiers );
422- ecoreKeyDownEvent.dev_name = isIME ? " ime" : " " ;
423- ecoreKeyDownEvent.keycode = keyDownEvent->keycode ;
424-
425- if (isIME && strcmp (keyDownEvent->key , " Select" ) == 0 ) {
412+ Ecore_IMF_Event_Key_Down imf_event;
413+ imf_event.keyname = event->keyname ;
414+ imf_event.key = event->key ;
415+ imf_event.string = event->string ;
416+ imf_event.compose = event->compose ;
417+ imf_event.timestamp = event->timestamp ;
418+ imf_event.modifiers = EcoreInputModifierToEcoreIMFModifier (event->modifiers );
419+ imf_event.locks = EcoreInputModifierToEcoreIMFLock (event->modifiers );
420+ imf_event.dev_name = is_ime ? " ime" : " " ;
421+ imf_event.keycode = event->keycode ;
422+
423+ if (is_ime && strcmp (event->key , " Select" ) == 0 ) {
426424 if (engine_->device_profile == DeviceProfile::kWearable ) {
427425 // FIXME: for wearable
428426 in_select_mode_ = true ;
429427 FT_LOGI (" Set select mode[true]" );
430428 }
431429 }
432430
433- if (isIME) {
434- if (!strcmp (keyDownEvent->key , " Left" ) ||
435- !strcmp (keyDownEvent->key , " Right" ) ||
436- !strcmp (keyDownEvent->key , " Up" ) ||
437- !strcmp (keyDownEvent->key , " Down" ) ||
438- !strcmp (keyDownEvent->key , " End" ) ||
439- !strcmp (keyDownEvent->key , " Home" ) ||
440- !strcmp (keyDownEvent->key , " BackSpace" ) ||
441- !strcmp (keyDownEvent->key , " Delete" ) ||
442- (!strcmp (keyDownEvent->key , " Select" ) && !in_select_mode_)) {
431+ if (is_ime) {
432+ if (!strcmp (event->key , " Left" ) || !strcmp (event->key , " Right" ) ||
433+ !strcmp (event->key , " Up" ) || !strcmp (event->key , " Down" ) ||
434+ !strcmp (event->key , " End" ) || !strcmp (event->key , " Home" ) ||
435+ !strcmp (event->key , " BackSpace" ) || !strcmp (event->key , " Delete" ) ||
436+ (!strcmp (event->key , " Select" ) && !in_select_mode_)) {
443437 // Force redirect to fallback!(especially on TV)
444438 // If you don't do this, it affects the input panel.
445439 // For example, when the left key of the input panel is pressed, the focus
446440 // of the input panel is shifted to left!
447441 // What we want is to move only the cursor on the text editor.
448442 ResetCurrentContext ();
449- FT_LOGW (" Force redirect IME key-event[%s] to fallback" ,
450- keyDownEvent->keyname );
443+ FT_LOGW (" Force redirect IME key-event[%s] to fallback" , event->keyname );
451444 return false ;
452445 }
453446 }
454447
455448 handled = ecore_imf_context_filter_event (
456449 imf_context_, ECORE_IMF_EVENT_KEY_DOWN,
457- reinterpret_cast <Ecore_IMF_Event*>(&ecoreKeyDownEvent ));
450+ reinterpret_cast <Ecore_IMF_Event*>(&imf_event ));
458451
459452 if (handled) {
460- last_handled_ecore_event_keyname_ = keyDownEvent ->keyname ;
453+ last_handled_ecore_event_keyname_ = event ->keyname ;
461454 }
462455
463- FT_LOGI (" The %skey-event[%s] are%s filtered" , isIME ? " IME " : " " ,
464- keyDownEvent ->keyname , handled ? " " : " not" );
456+ FT_LOGI (" The %skey-event[%s] are%s filtered" , is_ime ? " IME " : " " ,
457+ event ->keyname , handled ? " " : " not" );
465458
466- if (!handled && !strcmp (keyDownEvent ->key , " Return" ) && in_select_mode_ &&
459+ if (!handled && !strcmp (event ->key , " Return" ) && in_select_mode_ &&
467460 engine_->device_profile == DeviceProfile::kWearable ) {
468461 in_select_mode_ = false ;
469462 handled = true ;
@@ -473,61 +466,60 @@ bool TextInputChannel::FilterEvent(Ecore_Event_Key* keyDownEvent) {
473466 return handled;
474467}
475468
476- void TextInputChannel::NonIMFFallback (Ecore_Event_Key* keyDownEvent ) {
477- FT_LOGI (" NonIMFFallback key name [%s]" , keyDownEvent ->keyname );
469+ void TextInputChannel::NonIMFFallback (Ecore_Event_Key* event ) {
470+ FT_LOGI (" NonIMFFallback key name [%s]" , event ->keyname );
478471
479472 // For mobile, fix me!
480473 if (engine_->device_profile == DeviceProfile::kMobile &&
481474 edit_status_ == EditStatus::kPreeditEnd ) {
482475 SetEditStatus (EditStatus::kNone );
483- FT_LOGW (" Ignore key-event[%s]!" , keyDownEvent ->keyname );
476+ FT_LOGW (" Ignore key-event[%s]!" , event ->keyname );
484477 return ;
485478 }
486479
487- bool select = !strcmp (keyDownEvent ->key , " Select" );
480+ bool select = !strcmp (event ->key , " Select" );
488481 bool is_filtered = true ;
489- if (!strcmp (keyDownEvent ->key , " Left" )) {
482+ if (!strcmp (event ->key , " Left" )) {
490483 if (active_model_ && active_model_->MoveCursorBack ()) {
491484 SendStateUpdate (*active_model_);
492485 }
493- } else if (!strcmp (keyDownEvent ->key , " Right" )) {
486+ } else if (!strcmp (event ->key , " Right" )) {
494487 if (active_model_ && active_model_->MoveCursorForward ()) {
495488 SendStateUpdate (*active_model_);
496489 }
497- } else if (!strcmp (keyDownEvent ->key , " End" )) {
490+ } else if (!strcmp (event ->key , " End" )) {
498491 if (active_model_) {
499492 active_model_->MoveCursorToEnd ();
500493 SendStateUpdate (*active_model_);
501494 }
502- } else if (!strcmp (keyDownEvent ->key , " Home" )) {
495+ } else if (!strcmp (event ->key , " Home" )) {
503496 if (active_model_) {
504497 active_model_->MoveCursorToBeginning ();
505498 SendStateUpdate (*active_model_);
506499 }
507- } else if (!strcmp (keyDownEvent ->key , " BackSpace" )) {
500+ } else if (!strcmp (event ->key , " BackSpace" )) {
508501 if (active_model_ && active_model_->Backspace ()) {
509502 SendStateUpdate (*active_model_);
510503 }
511- } else if (!strcmp (keyDownEvent ->key , " Delete" )) {
504+ } else if (!strcmp (event ->key , " Delete" )) {
512505 if (active_model_ && active_model_->Delete ()) {
513506 SendStateUpdate (*active_model_);
514507 }
515- } else if (!strcmp (keyDownEvent->key , " Return" ) ||
516- (select && !in_select_mode_)) {
508+ } else if (!strcmp (event->key , " Return" ) || (select && !in_select_mode_)) {
517509 if (active_model_) {
518510 EnterPressed (active_model_.get (), select);
519511 }
520- } else if (keyDownEvent ->string && strlen (keyDownEvent ->string ) == 1 &&
521- IsASCIIPrintableKey (keyDownEvent ->string [0 ])) {
512+ } else if (event ->string && strlen (event ->string ) == 1 &&
513+ IsASCIIPrintableKey (event ->string [0 ])) {
522514 if (active_model_) {
523- active_model_->AddCodePoint (keyDownEvent ->string [0 ]);
515+ active_model_->AddCodePoint (event ->string [0 ]);
524516 SendStateUpdate (*active_model_);
525517 }
526518 } else {
527519 is_filtered = false ;
528520 }
529521 if (!active_model_ && is_filtered) {
530- engine_->platform_view_channel ->SendKeyEvent (keyDownEvent , true );
522+ engine_->platform_view_channel ->SendKeyEvent (event , true );
531523 }
532524 SetEditStatus (EditStatus::kNone );
533525}
0 commit comments