diff --git a/src/bin/edi_filepanel.c b/src/bin/edi_filepanel.c index 66c59a1..5cda342 100644 --- a/src/bin/edi_filepanel.c +++ b/src/bin/edi_filepanel.c @@ -781,6 +781,18 @@ _filter_key_down_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) elm_genlist_filter_set(tree, (void *)strdup(match)); } +void +edi_filepanel_select_path(const char *path) +{ + Elm_Object_Item *item; + + item = _file_listing_item_find(path); + if (!item) + return; + + elm_genlist_item_selected_set(item, EINA_TRUE); +} + void edi_filepanel_search() { diff --git a/src/bin/edi_filepanel.h b/src/bin/edi_filepanel.h index ef689dc..b15b7c4 100644 --- a/src/bin/edi_filepanel.h +++ b/src/bin/edi_filepanel.h @@ -41,6 +41,7 @@ void edi_filepanel_add(Evas_Object *parent, Evas_Object *win, const char *edi_filepanel_selected_path_get(Evas_Object *obj); +void edi_filepanel_select_path(const char *path); void edi_filepanel_search(); /** diff --git a/src/bin/mainview/edi_mainview_panel.c b/src/bin/mainview/edi_mainview_panel.c index 1e585bf..e4e5ea1 100644 --- a/src/bin/mainview/edi_mainview_panel.c +++ b/src/bin/mainview/edi_mainview_panel.c @@ -12,6 +12,7 @@ #include "mainview/edi_mainview_panel.h" #include "mainview/edi_mainview.h" +#include "edi_filepanel.h" #include "editor/edi_editor.h" #include "edi_content_provider.h" @@ -268,8 +269,9 @@ _promote(void *data, Evas_Object *obj EINA_UNUSED, { Edi_Mainview_Panel *panel; Edi_Editor *editor; + Edi_Mainview_Item *item = (Edi_Mainview_Item *) data; - panel = edi_mainview_panel_for_item_get((Edi_Mainview_Item *)data); + panel = edi_mainview_panel_for_item_get((Edi_Mainview_Item *)item); edi_mainview_panel_focus(panel); @@ -281,6 +283,8 @@ _promote(void *data, Evas_Object *obj EINA_UNUSED, editor = (Edi_Editor *)evas_object_data_get(panel->current->view, "editor"); if (editor) elm_object_focus_set(editor->entry, EINA_TRUE); + + edi_filepanel_select_path(item->path); } static void