ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=2386b51a60f89d0841d14c12c76632313a8c2419

commit 2386b51a60f89d0841d14c12c76632313a8c2419
Author: Al Poole <[email protected]>
Date:   Tue Jul 25 13:45:51 2017 +0100

    mainview_panels: on close tab focus on existing tab and always keep one 
mainview panel.
    
    Summary: This fixes crashes when closing tabs/panel and losing focus.
    
    Reviewers: ajwillia.ms
    
    Reviewed By: ajwillia.ms
    
    Differential Revision: https://phab.enlightenment.org/D5038
---
 src/bin/mainview/edi_mainview_panel.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/mainview/edi_mainview_panel.c 
b/src/bin/mainview/edi_mainview_panel.c
index 17bbb57..b8c3043 100644
--- a/src/bin/mainview/edi_mainview_panel.c
+++ b/src/bin/mainview/edi_mainview_panel.c
@@ -267,12 +267,16 @@ _closetab(void *data, Evas_Object *obj EINA_UNUSED,
           const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
 {
    Edi_Mainview_Panel *panel;
+   int index;
 
    panel = edi_mainview_panel_for_item_get((Edi_Mainview_Item *)data);
    edi_mainview_panel_item_close(panel, data);
-   if (eina_list_count(panel->items)== 0)
+   if (eina_list_count(panel->items)== 0 && edi_mainview_panel_count() > 1)
      {
         edi_mainview_panel_remove(panel);
+        index = edi_mainview_panel_count() - 1;
+        panel = edi_mainview_panel_by_index(index);
+        edi_mainview_panel_focus(panel);
      }
 }
 

-- 


Reply via email to