elementary - fix focus switching again after break

this fixes T4053

this was due to everal widgets haveing changed their class names and
are using the new names for mapping to keybinding config that used
legacy names to match binding to widget.
This commit is contained in:
Carsten Haitzler 2016-07-12 18:03:54 +09:00
parent c9787e4c38
commit 2936834d31
10 changed files with 28 additions and 18 deletions

View File

@ -13,8 +13,7 @@
#include "elm_part_helper.h"
#define MY_CLASS EFL_UI_FLIP_CLASS
#define MY_CLASS_NAME "Efl_Ui_Flip"
#define MY_CLASS_NAME "Efl.Ui.Flip"
#define MY_CLASS_NAME_LEGACY "elm_flip"
static const char SIG_ANIMATE_BEGIN[] = "animate,begin";

View File

@ -11,8 +11,7 @@
#include "elm_widget_layout.h"
#define MY_CLASS EFL_UI_FRAME_CLASS
#define MY_CLASS_NAME "Efl_Ui_Frame"
#define MY_CLASS_NAME "Efl.Ui.Frame"
#define MY_CLASS_NAME_LEGACY "elm_frame"
static const char SIG_CLICKED[] = "clicked";

View File

@ -4,6 +4,7 @@
#define MY_CLASS EFL_UI_GRID_CLASS
#define MY_CLASS_NAME "Efl.Ui.Grid"
#define MY_CLASS_NAME_LEGACY "elm_grid"
typedef struct _Custom_Table_Data Custom_Table_Data;

View File

@ -2,6 +2,7 @@
#define MY_CLASS EFL_UI_GRID_STATIC_CLASS
#define MY_CLASS_NAME "Efl.Ui.Grid.Static"
#define MY_CLASS_NAME_LEGACY "elm_grid"
EOLIAN static Eo *
_efl_ui_grid_static_eo_base_constructor(Eo *obj, void *pd EINA_UNUSED)

View File

@ -760,7 +760,7 @@ _efl_ui_image_elm_widget_event(Eo *obj, Efl_Ui_Image_Data *_pd EINA_UNUSED, Evas
if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME, ev, key_actions))
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME_LEGACY, ev, key_actions))
return EINA_FALSE;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;

View File

@ -9,8 +9,8 @@
#include "elm_widget_button.h"
#define MY_CLASS EFL_UI_NSTATE_CLASS
#define MY_CLASS_NAME "Efl.Ui.Nstate"
#define MY_CLASS_NAME_LEGACY "elm_check"
typedef struct
@ -162,7 +162,7 @@ _efl_ui_nstate_elm_widget_event(Eo *obj, Efl_Ui_Nstate_Data *_pd EINA_UNUSED, Ev
if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME, ev, key_actions))
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME_LEGACY, ev, key_actions))
return EINA_FALSE;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;

View File

@ -178,9 +178,8 @@ struct _Efl_Ui_Text_Rectangle
};
#define MY_CLASS EFL_UI_TEXT_CLASS
#define MY_CLASS_NAME "Efl_Ui_Text"
#define MY_CLASS_NAME_LEGACY "efl ui text"
#define MY_CLASS_NAME "Efl.Ui.Text"
#define MY_CLASS_NAME_LEGACY "elm_entry"
#include "efl_ui_internal_text_interactive.h"

View File

@ -17,8 +17,7 @@
* progress in the theme when needed */
#define MY_CLASS EFL_UI_VIDEO_CLASS
#define MY_CLASS_NAME "Efl_Ui_Video"
#define MY_CLASS_NAME "Efl.Ui.Video"
#define MY_CLASS_NAME_LEGACY "elm_video"
static const Evas_Smart_Cb_Description _smart_callbacks[] = {
@ -117,7 +116,7 @@ _efl_ui_video_elm_widget_event(Eo *obj, Efl_Ui_Video_Data *_pd EINA_UNUSED, Evas
if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME, ev, key_actions))
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME_LEGACY, ev, key_actions))
{
INF("keyname: '%s' not handled", ev->key);
return EINA_FALSE;

View File

@ -21,8 +21,7 @@
#include "interfaces/efl_common_internal.h"
#define MY_CLASS EFL_UI_WIN_CLASS
#define MY_CLASS_NAME "Efl_Ui_Win"
#define MY_CLASS_NAME "Efl.Ui.Win"
#define MY_CLASS_NAME_LEGACY "elm_win"
static const Elm_Win_Trap *trap = NULL;
@ -1653,7 +1652,7 @@ _efl_ui_win_elm_widget_event(Eo *obj, Efl_Ui_Win_Data *_pd EINA_UNUSED, Evas_Obj
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME, ev, key_actions))
if (!_elm_config_key_binding_call(obj, MY_CLASS_NAME_LEGACY, ev, key_actions))
return EINA_FALSE;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;

View File

@ -2572,7 +2572,15 @@ _elm_config_key_binding_hash(void)
_elm_key_bindings = eina_hash_string_superfast_new(NULL);
EINA_LIST_FOREACH(_elm_config->bindings, l, wb)
{
eina_hash_add(_elm_key_bindings, wb->name, wb->key_bindings);
if (wb->name)
{
char *namelower = alloca(strlen(wb->name) + 1);
char *p;
strcpy(namelower, wb->name);
for (p = namelower; *p; p++) *p = tolower(*p);
eina_hash_add(_elm_key_bindings, namelower, wb->key_bindings);
}
}
}
@ -2598,9 +2606,14 @@ _elm_config_key_binding_call(Evas_Object *obj,
{
Elm_Config_Binding_Key *binding;
Eina_List *binding_list, *l;
char *namelower, *p;
int i = 0;
binding_list = eina_hash_find(_elm_key_bindings, name);
namelower = alloca(strlen(name) + 1);
strcpy(namelower, name);
for (p = namelower; *p; p++) *p = tolower(*p);
binding_list = eina_hash_find(_elm_key_bindings, namelower);
if (binding_list)
{