From 2386b51a60f89d0841d14c12c76632313a8c2419 Mon Sep 17 00:00:00 2001 From: Al Poole Date: Tue, 25 Jul 2017 13:45:51 +0100 Subject: [PATCH] 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); } }