diff --git a/src/bin/edi_filepanel.c b/src/bin/edi_filepanel.c index fdcfccc..46bd171 100644 --- a/src/bin/edi_filepanel.c +++ b/src/bin/edi_filepanel.c @@ -142,8 +142,13 @@ _item_menu_open_panel_cb(void *data, Evas_Object *obj EINA_UNUSED, Edi_Path_Options *options; Edi_Dir_Data *sd = data; + if (edi_mainview_panel_count() == 1 && + (edi_mainview_panel_item_count(edi_mainview_panel_by_index(0)) == 0)) + panel = edi_mainview_panel_by_index(0); + else + panel = edi_mainview_panel_append(); + options = edi_path_options_create(sd->path); - panel = edi_mainview_panel_append(); edi_mainview_panel_open(panel, options); } diff --git a/src/bin/mainview/edi_mainview_panel.c b/src/bin/mainview/edi_mainview_panel.c index b8c3043..2b3d05e 100644 --- a/src/bin/mainview/edi_mainview_panel.c +++ b/src/bin/mainview/edi_mainview_panel.c @@ -25,6 +25,12 @@ static void dummy() {} +unsigned int +edi_mainview_panel_item_count(Edi_Mainview_Panel *panel) +{ + return eina_list_count(panel->items); +} + Edi_Mainview_Item * edi_mainview_panel_item_current_get(Edi_Mainview_Panel *panel) { diff --git a/src/bin/mainview/edi_mainview_panel.h b/src/bin/mainview/edi_mainview_panel.h index edbb1a9..0c080ea 100644 --- a/src/bin/mainview/edi_mainview_panel.h +++ b/src/bin/mainview/edi_mainview_panel.h @@ -278,6 +278,14 @@ void edi_mainview_panel_goto_position(Edi_Mainview_Panel *panel, unsigned int ro */ void edi_mainview_panel_goto_popup_show(); +/** + * Return number of items in panel. + * @param panel the mainview panel context + * + * @ingroup Content + */ +unsigned int edi_mainview_panel_item_count(Edi_Mainview_Panel *panel); + /** * @} *