forked from enlightenment/efl
elementary: split the smart callback event name from the Eo name when needed.
This fix the borkage of the "selected" smart event not being triggered. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D8332
This commit is contained in:
parent
e859130dd4
commit
791ca77a68
|
@ -124,16 +124,16 @@ _focus_chain_update(Eo *obj, Elm_Fileselector_Data *pd)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_event_to_legacy_call(Eo *obj, const Efl_Event_Description *evt_desc, void *event_info)
|
_event_to_legacy_call(Eo *obj, const char *legacy_evt, void *event_info)
|
||||||
{
|
{
|
||||||
const Efl_Event_Description *legacy_desc = efl_object_legacy_only_event_description_get(evt_desc->name);
|
const Efl_Event_Description *legacy_desc = efl_object_legacy_only_event_description_get(legacy_evt);
|
||||||
efl_event_callback_call(obj, legacy_desc, event_info);
|
efl_event_callback_call(obj, legacy_desc, event_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_model_event_call(Eo *obj, const Efl_Event_Description *evt_desc, Efl_Model *model, const char *path)
|
_model_event_call(Eo *obj, const Efl_Event_Description *evt_desc, const char *legacy_evt, Efl_Model *model, const char *path)
|
||||||
{
|
{
|
||||||
_event_to_legacy_call(obj, evt_desc, (void *)path);
|
_event_to_legacy_call(obj, legacy_evt, (void *)path);
|
||||||
efl_event_callback_call(obj, evt_desc, model);
|
efl_event_callback_call(obj, evt_desc, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -665,8 +665,7 @@ _signal_first(Listing_Request *lreq)
|
||||||
sd->multi_selection = eina_list_free(sd->multi_selection);
|
sd->multi_selection = eina_list_free(sd->multi_selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
_model_event_call
|
_model_event_call(lreq->obj, ELM_FILESELECTOR_EVENT_DIRECTORY_OPEN, ELM_FILESELECTOR_EVENT_DIRECTORY_OPEN->name, lreq->model, lreq->path);
|
||||||
(lreq->obj, ELM_FILESELECTOR_EVENT_DIRECTORY_OPEN, lreq->model, lreq->path);
|
|
||||||
|
|
||||||
if (!lreq->parent_it)
|
if (!lreq->parent_it)
|
||||||
{
|
{
|
||||||
|
@ -1129,8 +1128,7 @@ _on_item_activated(void *data, const Efl_Event *event)
|
||||||
|
|
||||||
if (!it_data->is_dir)
|
if (!it_data->is_dir)
|
||||||
{
|
{
|
||||||
_model_event_call
|
_model_event_call(data, ELM_FILESELECTOR_EVENT_ACTIVATED, ELM_FILESELECTOR_EVENT_ACTIVATED->name, it_data->model, it_data->path);
|
||||||
(data, ELM_FILESELECTOR_EVENT_ACTIVATED, it_data->model, it_data->path);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1214,8 +1212,7 @@ _on_item_selected(void *data, const Efl_Event *event)
|
||||||
else
|
else
|
||||||
elm_object_text_set(sd->name_entry, it_data->filename);
|
elm_object_text_set(sd->name_entry, it_data->filename);
|
||||||
|
|
||||||
_model_event_call
|
_model_event_call(data, EFL_UI_EVENT_ITEM_SELECTED, "selected", it_data->model, it_data->path);
|
||||||
(data, EFL_UI_EVENT_ITEM_SELECTED, it_data->model, it_data->path);
|
|
||||||
}
|
}
|
||||||
else if (sd->multi && it_data->is_dir && sd->double_tap_navigation)
|
else if (sd->multi && it_data->is_dir && sd->double_tap_navigation)
|
||||||
{
|
{
|
||||||
|
@ -1368,7 +1365,7 @@ _ok(void *data, const Efl_Event *event)
|
||||||
|
|
||||||
if (!sd->model || !sd->path)
|
if (!sd->model || !sd->path)
|
||||||
{
|
{
|
||||||
_model_event_call(fs, ELM_FILESELECTOR_EVENT_DONE, NULL, NULL);
|
_model_event_call(fs, ELM_FILESELECTOR_EVENT_DONE, ELM_FILESELECTOR_EVENT_DONE->name, NULL, NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1386,8 +1383,7 @@ _ok(void *data, const Efl_Event *event)
|
||||||
efl_event_callback_array_add(efl_added, noref_death(), NULL));
|
efl_event_callback_array_add(efl_added, noref_death(), NULL));
|
||||||
_model_str_property_set(selected_model, "path", selection);
|
_model_str_property_set(selected_model, "path", selection);
|
||||||
|
|
||||||
_model_event_call
|
_model_event_call(fs, ELM_FILESELECTOR_EVENT_DONE, ELM_FILESELECTOR_EVENT_DONE->name, selected_model, selection);
|
||||||
(fs, ELM_FILESELECTOR_EVENT_DONE, selected_model, selection);
|
|
||||||
|
|
||||||
efl_unref(selected_model);
|
efl_unref(selected_model);
|
||||||
eina_stringshare_del(selection);
|
eina_stringshare_del(selection);
|
||||||
|
@ -1397,13 +1393,11 @@ _ok(void *data, const Efl_Event *event)
|
||||||
Elm_Fileselector_Item_Data *it_data = _selected_item_data_get(sd);
|
Elm_Fileselector_Item_Data *it_data = _selected_item_data_get(sd);
|
||||||
if (it_data)
|
if (it_data)
|
||||||
{
|
{
|
||||||
_model_event_call
|
_model_event_call(fs, ELM_FILESELECTOR_EVENT_DONE, ELM_FILESELECTOR_EVENT_DONE->name, it_data->model, it_data->path);
|
||||||
(fs, ELM_FILESELECTOR_EVENT_DONE, it_data->model, it_data->path);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_model_event_call
|
_model_event_call(fs, ELM_FILESELECTOR_EVENT_DONE, ELM_FILESELECTOR_EVENT_DONE->name, sd->model, sd->path);
|
||||||
(fs, ELM_FILESELECTOR_EVENT_DONE, sd->model, sd->path);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1413,7 +1407,7 @@ _canc(void *data, const Efl_Event *event EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Evas_Object *fs = data;
|
Evas_Object *fs = data;
|
||||||
|
|
||||||
_model_event_call(fs, ELM_FILESELECTOR_EVENT_DONE, NULL, NULL);
|
_model_event_call(fs, ELM_FILESELECTOR_EVENT_DONE, ELM_FILESELECTOR_EVENT_DONE->name, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1441,7 +1435,7 @@ _on_text_activated_set_path_then(void *data, const Eina_Value v, const Eina_Futu
|
||||||
|
|
||||||
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR)
|
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR)
|
||||||
{
|
{
|
||||||
_model_event_call(fs, ELM_FILESELECTOR_EVENT_SELECTED_INVALID, model, str);
|
_model_event_call(fs, ELM_FILESELECTOR_EVENT_SELECTED_INVALID, ELM_FILESELECTOR_EVENT_SELECTED_INVALID->name, model, str);
|
||||||
goto selected;
|
goto selected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1467,7 +1461,7 @@ _on_text_activated_set_path_then(void *data, const Eina_Value v, const Eina_Futu
|
||||||
|
|
||||||
selected:
|
selected:
|
||||||
if (sd->only_folder)
|
if (sd->only_folder)
|
||||||
_model_event_call(fs, EFL_UI_EVENT_ITEM_SELECTED, model, str);
|
_model_event_call(fs, EFL_UI_EVENT_ITEM_SELECTED, "selected", model, str);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
_text_activated_free_fs_data(fs);
|
_text_activated_free_fs_data(fs);
|
||||||
|
@ -1953,13 +1947,15 @@ static Eina_Bool
|
||||||
_from_efl_event_call(Elm_Fileselector *fs, const Efl_Event_Description *evt_desc, Efl_Model *model)
|
_from_efl_event_call(Elm_Fileselector *fs, const Efl_Event_Description *evt_desc, Efl_Model *model)
|
||||||
{
|
{
|
||||||
Eina_Value *fetch;
|
Eina_Value *fetch;
|
||||||
|
const char *evt;
|
||||||
char *path;
|
char *path;
|
||||||
|
|
||||||
// Call legacy smart callback with path
|
// Call legacy smart callback with path
|
||||||
fetch = efl_model_property_get(model, "path");
|
fetch = efl_model_property_get(model, "path");
|
||||||
path = eina_value_to_string(fetch);
|
path = eina_value_to_string(fetch);
|
||||||
|
|
||||||
_event_to_legacy_call(fs, evt_desc, path);
|
evt = evt_desc == EFL_UI_EVENT_ITEM_SELECTED ? "selected" : evt_desc->name;
|
||||||
|
_event_to_legacy_call(fs, evt, path);
|
||||||
|
|
||||||
// Call Eo event with model
|
// Call Eo event with model
|
||||||
return efl_event_callback_call(fs, evt_desc, model);
|
return efl_event_callback_call(fs, evt_desc, model);
|
||||||
|
|
|
@ -87,7 +87,7 @@ _selection_done(void *data, const Efl_Event *event EINA_UNUSED)
|
||||||
efl_event_callback_call
|
efl_event_callback_call
|
||||||
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN, model);
|
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN, model);
|
||||||
_event_to_legacy_call
|
_event_to_legacy_call
|
||||||
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN, file);
|
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN->name, file);
|
||||||
|
|
||||||
eina_value_free(path);
|
eina_value_free(path);
|
||||||
free(file);
|
free(file);
|
||||||
|
@ -95,7 +95,7 @@ _selection_done(void *data, const Efl_Event *event EINA_UNUSED)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_model_event_call
|
_model_event_call
|
||||||
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN, NULL, NULL);
|
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN->name, NULL, NULL);
|
||||||
}
|
}
|
||||||
eina_stringshare_replace(&sd->fsd.current_name, elm_interface_fileselector_current_name_get(sd->fs));
|
eina_stringshare_replace(&sd->fsd.current_name, elm_interface_fileselector_current_name_get(sd->fs));
|
||||||
del = sd->fsw;
|
del = sd->fsw;
|
||||||
|
@ -366,7 +366,7 @@ _elm_fileselector_button_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Elm_Filesele
|
||||||
eina_stringshare_replace(&sd->fsd.path, file);
|
eina_stringshare_replace(&sd->fsd.path, file);
|
||||||
|
|
||||||
_event_to_legacy_call
|
_event_to_legacy_call
|
||||||
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN, file);
|
(sd->obj, ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN->name, file);
|
||||||
|
|
||||||
free(file);
|
free(file);
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ _FILE_CHOSEN_fwd(void *data, const Efl_Event *event)
|
||||||
file = eina_value_to_string(path);
|
file = eina_value_to_string(path);
|
||||||
|
|
||||||
_model_event_call
|
_model_event_call
|
||||||
(fs, ELM_FILESELECTOR_ENTRY_EVENT_FILE_CHOSEN, model, file);
|
(fs, ELM_FILESELECTOR_ENTRY_EVENT_FILE_CHOSEN, ELM_FILESELECTOR_ENTRY_EVENT_FILE_CHOSEN->name, model, file);
|
||||||
|
|
||||||
eina_value_free(path);
|
eina_value_free(path);
|
||||||
free(file);
|
free(file);
|
||||||
|
|
|
@ -60,9 +60,9 @@ _elm_fileselector_button_selected_paths_get_internal(const Evas_Object *obj);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
_event_to_legacy_call(Eo *obj, const Efl_Event_Description *evt_desc, void *event_info);
|
_event_to_legacy_call(Eo *obj, const char *evt, void *event_info);
|
||||||
|
|
||||||
void
|
void
|
||||||
_model_event_call(Eo *obj, const Efl_Event_Description *evt_desc, Efl_Model *model, const char *path);
|
_model_event_call(Eo *obj, const Efl_Event_Description *evt_desc, const char *legacy_evt, Efl_Model *model, const char *path);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue