From 90d9c3ddb186849f152b5062c8ddd6fcea738cea Mon Sep 17 00:00:00 2001 From: nicolua Date: Fri, 30 May 2014 17:11:46 +0300 Subject: [PATCH 1/4] menu on k3 --- frontend/apps/reader/modules/readertoc.lua | 3 +++ frontend/ui/widget/focusmanager.lua | 2 +- frontend/ui/widget/menu.lua | 5 ++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index 84f9d1160..1e1bf7d59 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -142,6 +142,9 @@ function ReaderToc:onShowToc() end UIManager:show(menu_container) +--nicolua + UIManager:show(toc_menu) + return true end diff --git a/frontend/ui/widget/focusmanager.lua b/frontend/ui/widget/focusmanager.lua index 79c0571c1..daa6bb4dc 100644 --- a/frontend/ui/widget/focusmanager.lua +++ b/frontend/ui/widget/focusmanager.lua @@ -80,7 +80,7 @@ function FocusManager:onFocusMove(args) current_item:handleEvent(Event:new("Unfocus")) self.layout[self.selected.y][self.selected.x]:handleEvent(Event:new("Focus")) -- trigger a repaint (we need to be the registered widget!) - UIManager:setDirty(self, "partial") + UIManager:setDirty(self.show_parent or self, "partial") break end end diff --git a/frontend/ui/widget/menu.lua b/frontend/ui/widget/menu.lua index 1845c85d4..cf3c6f44e 100644 --- a/frontend/ui/widget/menu.lua +++ b/frontend/ui/widget/menu.lua @@ -542,8 +542,11 @@ function Menu:updateItems(select_number) end -- FIXME: this is a dirty hack to clear previous menus - UIManager.repaint_all = true +-- UIManager.repaint_all = true --UIManager:setDirty(self) +--nicolua + UIManager:setDirty(self.show_parent or self) + end function Menu:swithItemTable(new_title, new_item_table) From 8a2c55330b31ae690522f51b4afa0f2b880f218c Mon Sep 17 00:00:00 2001 From: nicolua Date: Fri, 30 May 2014 18:09:38 +0300 Subject: [PATCH 2/4] has been tested on k3g (after ioctl to ffi.C.ioctl in framebuffer_linux.lua) --- frontend/ui/widget/focusmanager.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/ui/widget/focusmanager.lua b/frontend/ui/widget/focusmanager.lua index daa6bb4dc..df70cdd78 100644 --- a/frontend/ui/widget/focusmanager.lua +++ b/frontend/ui/widget/focusmanager.lua @@ -80,7 +80,7 @@ function FocusManager:onFocusMove(args) current_item:handleEvent(Event:new("Unfocus")) self.layout[self.selected.y][self.selected.x]:handleEvent(Event:new("Focus")) -- trigger a repaint (we need to be the registered widget!) - UIManager:setDirty(self.show_parent or self, "partial") + UIManager:setDirty(self.show_parent or self, "partial") break end end From 09d6005bb3a8ea75dbcba6a5c4f25a51de96e8ff Mon Sep 17 00:00:00 2001 From: nicolua Date: Sat, 31 May 2014 13:50:21 +0300 Subject: [PATCH 3/4] yes it will better to show and close one widget but I found the same problem in documentfont menu so dancing is continued --- frontend/apps/reader/modules/readertoc.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index 1e1bf7d59..7d4fb811e 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -137,13 +137,13 @@ function ReaderToc:onShowToc() self.ui:handleEvent(Event:new("PageUpdate", item.page)) end + local w = Device:isTouchDevice() and menu_container or toc_menu + toc_menu.close_callback = function() - UIManager:close(menu_container) + UIManager:close(w) end - UIManager:show(menu_container) ---nicolua - UIManager:show(toc_menu) + UIManager:show(w) return true end From 077b1bdf5a4f4f0c90b3980776ebc5c58b3a4975 Mon Sep 17 00:00:00 2001 From: nicolua Date: Sat, 31 May 2014 15:43:44 +0300 Subject: [PATCH 4/4] show_parent to menu_container works in font menu and toc menu on k3 hope on touch the same --- frontend/apps/reader/modules/readerfont.lua | 4 ++++ frontend/apps/reader/modules/readertoc.lua | 9 ++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/apps/reader/modules/readerfont.lua b/frontend/apps/reader/modules/readerfont.lua index ffd6954ea..c27ea0572 100644 --- a/frontend/apps/reader/modules/readerfont.lua +++ b/frontend/apps/reader/modules/readerfont.lua @@ -121,7 +121,11 @@ function ReaderFont:onShowFontMenu() UIManager:close(menu_container) end -- show menu + + main_menu.show_parent = menu_container + UIManager:show(menu_container) + return true end diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index 7d4fb811e..2a783cf2a 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -124,7 +124,6 @@ function ReaderToc:onShowToc() ui = self.ui, width = Screen:getWidth(), height = Screen:getHeight(), - show_parent = menu_container, is_borderless = true, } @@ -137,13 +136,13 @@ function ReaderToc:onShowToc() self.ui:handleEvent(Event:new("PageUpdate", item.page)) end - local w = Device:isTouchDevice() and menu_container or toc_menu - toc_menu.close_callback = function() - UIManager:close(w) + UIManager:close(menu_container) end - UIManager:show(w) + toc_menu.show_parent = menu_container + + UIManager:show(menu_container) return true end