From d7a7a78731a13debaa47b63de81f47a904f1c709 Mon Sep 17 00:00:00 2001 From: onde2rock Date: Sat, 7 Apr 2018 17:31:48 +0200 Subject: [PATCH] [fix] MenuSorter: don't leave ghost top level items (#3844) See https://github.com/koreader/koreader/pull/3773#issuecomment-379181517 --- frontend/ui/menusorter.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/ui/menusorter.lua b/frontend/ui/menusorter.lua index b2a4493c7..8fc0110ce 100644 --- a/frontend/ui/menusorter.lua +++ b/frontend/ui/menusorter.lua @@ -131,12 +131,14 @@ function MenuSorter:sort(item_table, order) end -- cleanup, top-level items shouldn't have sub_item_table -- they should, however have one going in + -- Also, compress the menu table. local menu_buttons_offset = 0 for i,top_menu in ipairs(menu_table["KOMenu:menu_buttons"]) do - if menu_table["KOMenu:menu_buttons"][i].sub_item_table then - menu_table["KOMenu:menu_buttons"][i-menu_buttons_offset] = menu_table["KOMenu:menu_buttons"][i].sub_item_table + local menu_button = menu_table["KOMenu:menu_buttons"][i].sub_item_table + menu_table["KOMenu:menu_buttons"][i] = nil + if menu_button then + menu_table["KOMenu:menu_buttons"][i-menu_buttons_offset] = menu_button else - menu_table["KOMenu:menu_buttons"][i] = nil menu_buttons_offset = menu_buttons_offset + 1 end end