From 1dd7012a96494c305af032fb2ba2ca3e78f95f0a Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Sun, 19 Nov 2017 11:56:09 +0000 Subject: [PATCH] mainview: Don't shuffle tabs on background close If it's not the panel's current tab we can ignore it --- src/bin/mainview/edi_mainview_panel.c | 29 ++++++++++++++------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/bin/mainview/edi_mainview_panel.c b/src/bin/mainview/edi_mainview_panel.c index 27cf3f9..089546f 100644 --- a/src/bin/mainview/edi_mainview_panel.c +++ b/src/bin/mainview/edi_mainview_panel.c @@ -284,13 +284,14 @@ void edi_mainview_panel_item_close(Edi_Mainview_Panel *panel, Edi_Mainview_Item *item) { int item_index; + Eina_Bool current; if (!item) return; + current = (item == panel->current); item_index = eina_list_data_idx(panel->items, item); - edi_mainview_item_prev(); if (item->view) evas_object_del(item->view); elm_box_unpack(panel->tabs, item->tab); @@ -302,22 +303,22 @@ edi_mainview_panel_item_close(Edi_Mainview_Panel *panel, Edi_Mainview_Item *item eina_stringshare_del(item->path); free(item); + if (!current) + return; + if (eina_list_count(panel->items) == 0) - _edi_mainview_panel_show(panel, panel->welcome); - - if (panel == edi_mainview_panel_current_get()) { - if (eina_list_count(panel->items)) - { - if (item_index) - item = eina_list_nth(panel->items, item_index - 1); - else - item = eina_list_nth(panel->items, item_index); - - edi_mainview_panel_item_select(panel, item); - _edi_mainview_panel_current_tab_show(panel); - } + _edi_mainview_panel_show(panel, panel->welcome); + return; } + + if (item_index) + item = eina_list_nth(panel->items, item_index - 1); + else + item = eina_list_nth(panel->items, item_index); + + edi_mainview_panel_item_select(panel, item); + _edi_mainview_panel_current_tab_show(panel); } void