From 1db7f2e444473a5e1ffd50359f3876f6ca089d3a Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Mon, 7 Oct 2019 17:46:09 +0200 Subject: [PATCH] [fix] Try to make screensaver settings slightly less error-prone (#5460) Regression inadvertently caused by #5369. With the way this is constructed, this is almost guaranteed to happen. Fixes #5459. --- frontend/apps/reader/modules/readermenu.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index e068affdd..c36dd3748 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -175,7 +175,11 @@ function ReaderMenu:setUpdateItemTable() text = _("Screensaver"), sub_item_table = require("ui/elements/screensaver_menu"), } - table.remove(self.menu_items.screensaver.sub_item_table, 9) + local table_len = #self.menu_items.screensaver.sub_item_table + --- @todo Make this less prone to being messed up by screensaver menu changes, for example with MenuSorter. + if self.menu_items.screensaver.sub_item_table[table_len].text == ss_book_settings.text then + table.remove(self.menu_items.screensaver.sub_item_table, table_len) + end table.insert(self.menu_items.screensaver.sub_item_table, ss_book_settings) end @@ -348,10 +352,11 @@ end function ReaderMenu:onCloseDocument() if Device:supportsScreensaver() then - -- Remove the 9th item we added (which cleans up references to document + --- @todo Make this less prone to being messed up by screensaver menu changes, for example with MenuSorter. + -- Remove the item we added (which cleans up references to document -- and doc_settings embedded in functions) local screensaver_sub_item_table = require("ui/elements/screensaver_menu") - table.remove(screensaver_sub_item_table, 9) + table.remove(screensaver_sub_item_table, #screensaver_sub_item_table) end end