A comparison was being done with the Ecore KeyEvent and the lookup table in in Dali KeyLookup,
as there could be one to many mappings the first match was returned. Meant a following match that was needed got ignored.
Use IsDeviceButton now which returns true or false after checking whole KeyLookup table.
Change-Id: I0d888a641e700569d6a66106df52ccef01f86a1d
*/
static Eina_Bool EcoreEventKeyUp( void* data, int type, void* event )
{
- DALI_LOG_INFO( gImfLogging, Debug::General, "EVENT >>EcoreEventKeyUp \n" );
+ DALI_LOG_INFO( gImfLogging, Debug::General, "EVENT >>EcoreEventKeyUp\n" );
EventHandler* handler( (EventHandler*)data );
Ecore_Event_Key *keyEvent( (Ecore_Event_Key*)event );
bool eventHandled( false );
- // Menu, home, back button must skip ecore_imf_context_filter_event.
- static const char* menuKeyName = KeyLookup::GetKeyName( DALI_KEY_MENU );
- static const char* homeKeyName = KeyLookup::GetKeyName( DALI_KEY_HOME );
- static const char* backKeyName = KeyLookup::GetKeyName( DALI_KEY_BACK );
- if ( ( menuKeyName && strcmp( keyEvent->keyname, menuKeyName ) != 0 ) &&
- ( homeKeyName && strcmp( keyEvent->keyname, homeKeyName ) != 0 ) &&
- ( backKeyName && strcmp( keyEvent->keyname, backKeyName ) != 0 ) )
+ // Device keys like Menu, home, back button must skip ecore_imf_context_filter_event.
+ if ( ! KeyLookup::IsDeviceButton( keyEvent->keyname ) )
{
Ecore_IMF_Context* imfContext = NULL;
Dali::ImfManager imfManager( ImfManager::Get() );
{ "XF86Menu", DALI_KEY_MENU, true },
{ "XF86Home", DALI_KEY_HOME, true },
{ "XF86Back", DALI_KEY_BACK, true },
+ { "XF86Send", DALI_KEY_MENU, true },
+ { "XF86Phone", DALI_KEY_HOME, true },
+ { "XF86Stop", DALI_KEY_BACK, true },
{ "XF86HomePage", DALI_KEY_HOMEPAGE, false },
{ "XF86WWW", DALI_KEY_WEBPAGE, false },
{ "XF86Mail", DALI_KEY_MAIL, false },
{ "XF86Menu", DALI_KEY_MENU, true },
{ "XF86Home", DALI_KEY_HOME, true },
{ "XF86Back", DALI_KEY_BACK, true },
+ { "XF86Send", DALI_KEY_MENU, true },
+ { "XF86Phone", DALI_KEY_HOME, true },
+ { "XF86Stop", DALI_KEY_BACK, true },
{ "XF86HomePage", DALI_KEY_HOMEPAGE, false },
{ "XF86WWW", DALI_KEY_WEBPAGE, false },
{ "XF86Mail", DALI_KEY_MAIL, false },
{ "XF86Menu", DALI_KEY_MENU, true },
{ "XF86Home", DALI_KEY_HOME, true },
{ "XF86Back", DALI_KEY_BACK, true },
+ { "XF86Send", DALI_KEY_MENU, true },
+ { "XF86Phone", DALI_KEY_HOME, true },
+ { "XF86Stop", DALI_KEY_BACK, true },
{ "XF86HomePage", DALI_KEY_HOMEPAGE, false },
{ "XF86WWW", DALI_KEY_WEBPAGE, false },
{ "XF86Mail", DALI_KEY_MAIL, false },
{ "XF86Menu", DALI_KEY_MENU, true },
{ "XF86Home", DALI_KEY_HOME, true },
{ "XF86Back", DALI_KEY_BACK, true },
+ { "XF86Send", DALI_KEY_MENU, true },
+ { "XF86Phone", DALI_KEY_HOME, true },
+ { "XF86Stop", DALI_KEY_BACK, true },
{ "XF86HomePage", DALI_KEY_HOMEPAGE, false },
{ "XF86WWW", DALI_KEY_WEBPAGE, false },
{ "XF86Mail", DALI_KEY_MAIL, false },
Ecore_Event_Key *keyEvent( (Ecore_Event_Key*)event );
bool eventHandled( false );
- // Menu, home, back button must skip ecore_imf_context_filter_event.
- static const char* menuKeyName = KeyLookup::GetKeyName( DALI_KEY_MENU );
- static const char* homeKeyName = KeyLookup::GetKeyName( DALI_KEY_HOME );
- static const char* backKeyName = KeyLookup::GetKeyName( DALI_KEY_BACK );
- if ( ( menuKeyName && strcmp( keyEvent->keyname, menuKeyName ) != 0 ) &&
- ( homeKeyName && strcmp( keyEvent->keyname, homeKeyName ) != 0 ) &&
- ( backKeyName && strcmp( keyEvent->keyname, backKeyName ) != 0 ) )
+ // Device keys like Menu, home, back button must skip ecore_imf_context_filter_event.
+ if ( ! KeyLookup::IsDeviceButton( keyEvent->keyname ) )
{
Ecore_IMF_Context* imfContext = NULL;
Dali::ImfManager imfManager( ImfManager::Get() );
{ "XF86Menu", DALI_KEY_MENU, true },
{ "XF86Home", DALI_KEY_HOME, true },
{ "XF86Back", DALI_KEY_BACK, true },
+ { "XF86Send", DALI_KEY_MENU, true },
+ { "XF86Phone", DALI_KEY_HOME, true },
+ { "XF86Stop", DALI_KEY_BACK, true },
{ "XF86HomePage", DALI_KEY_HOMEPAGE, false },
{ "XF86WWW", DALI_KEY_WEBPAGE, false },
{ "XF86Mail", DALI_KEY_MAIL, false },
{ "XF86Menu", DALI_KEY_MENU, true },
{ "XF86Home", DALI_KEY_HOME, true },
{ "XF86Back", DALI_KEY_BACK, true },
+ { "XF86Send", DALI_KEY_MENU, true },
+ { "XF86Phone", DALI_KEY_HOME, true },
+ { "XF86Stop", DALI_KEY_BACK, true },
{ "XF86HomePage", DALI_KEY_HOMEPAGE, false },
{ "XF86WWW", DALI_KEY_WEBPAGE, false },
{ "XF86Mail", DALI_KEY_MAIL, false },
{ "XF86AudioPlayPause", DALI_KEY_PLAY_PAUSE, false },
{ "XF86AudioMute", DALI_KEY_MUTE, false },
{ "XF86Menu", DALI_KEY_MENU, true },
+ { "XF86Send", DALI_KEY_MENU, true },
{ "XF86HomePage", DALI_KEY_HOMEPAGE, false },
{ "XF86WWW", DALI_KEY_WEBPAGE, false },
{ "XF86Mail", DALI_KEY_MAIL, false },