ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=3586ac9cc0af752babf2708798752fc9a40f9872

commit 3586ac9cc0af752babf2708798752fc9a40f9872
Author: Al Poole <[email protected]>
Date:   Tue Jul 25 22:31:37 2017 +0100

    mainview: Always open in first panel.
    
    Summary: This patch ensures "open file in panel" will open in first 
mainview if no file exists in the primary mainview. Otherwise business-as-usual.
    
    Reviewers: ajwillia.ms
    
    Reviewed By: ajwillia.ms
    
    Differential Revision: https://phab.enlightenment.org/D5040
---
 src/bin/edi_filepanel.c               | 7 ++++++-
 src/bin/mainview/edi_mainview_panel.c | 6 ++++++
 src/bin/mainview/edi_mainview_panel.h | 8 ++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)

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
@@ -279,6 +279,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);
+
+/**
  * @}
  *
  */

-- 


Reply via email to