diff --git a/frontend/ui/widget/button.lua b/frontend/ui/widget/button.lua index b954346d2..6a2c0169b 100644 --- a/frontend/ui/widget/button.lua +++ b/frontend/ui/widget/button.lua @@ -152,14 +152,14 @@ end function Button:onTapSelectButton() if self.enabled and self.callback then - self[1].invert = true - -- NOTE: Nope, this breaks the FM, by only refreshing the buttons themselves :D. - --[[ - UIManager.update_regions_func = function() - return {self[1].dimen} - end - --]] - UIManager:setDirty(self.show_parent, "partial") + UIManager:scheduleIn(0.0, function() + self[1].invert = true + UIManager.update_regions_func = function() + return {self[1].dimen} + end + UIManager.repaint_all = true -- FIXME: Why? + UIManager:setDirty(self.show_parent, "partial") + end) UIManager:scheduleIn(0.1, function() self.callback() self[1].invert = false diff --git a/frontend/ui/widget/iconbutton.lua b/frontend/ui/widget/iconbutton.lua index 808752b72..8871fccbf 100644 --- a/frontend/ui/widget/iconbutton.lua +++ b/frontend/ui/widget/iconbutton.lua @@ -39,11 +39,13 @@ function IconButton:initGesListener() end function IconButton:onTapClickButton() - self.image.invert = true - UIManager.update_regions_func = function() - return {self[1].dimen} - end - UIManager:setDirty(self.show_parent, "partial") + UIManager:scheduleIn(0.0, function() + self.image.invert = true + UIManager.update_regions_func = function() + return {self[1].dimen} + end + UIManager:setDirty(self.show_parent, "partial") + end) -- make sure button reacts before doing callback UIManager:scheduleIn(0.1, function() self.callback() diff --git a/frontend/ui/widget/touchmenu.lua b/frontend/ui/widget/touchmenu.lua index 6bc4a0728..53e85ac10 100644 --- a/frontend/ui/widget/touchmenu.lua +++ b/frontend/ui/widget/touchmenu.lua @@ -95,11 +95,13 @@ function TouchMenuItem:onTapSelect(arg, ges) end if enabled == false then return end - self.item_frame.invert = true - UIManager.update_regions_func = function() - return {self.dimen} - end - UIManager:setDirty(self.show_parent, "partial") + UIManager:scheduleIn(0.0, function() + self.item_frame.invert = true + UIManager.update_regions_func = function() + return {self.dimen} + end + UIManager:setDirty(self.show_parent, "partial") + end) UIManager:scheduleIn(0.1, function() self.menu:onMenuSelect(self.item) end) @@ -117,11 +119,13 @@ function TouchMenuItem:onHoldSelect(arg, ges) end if enabled == false then return end - self.item_frame.invert = true - UIManager.update_regions_func = function() - return {self.dimen} - end - UIManager:setDirty(self.show_parent, "partial") + UIManager:scheduleIn(0.0, function() + self.item_frame.invert = true + UIManager.update_regions_func = function() + return {self.dimen} + end + UIManager:setDirty(self.show_parent, "partial") + end) UIManager:scheduleIn(0.1, function() self.menu:onMenuHold(self.item) end) @@ -454,7 +458,7 @@ function TouchMenu:updateItems() self.page_info_right_chev:enableDisable(self.page < self.page_num) self.time_info.text = os.date("%H:%M").." @ "..Device:getPowerDevice():getCapacity().."%" -- FIXME: this is a dirty hack to clear previous menus - -- refert to issue #664 + -- refer to issue #664 (in kindlepdfviewer) UIManager.repaint_all = true end @@ -533,7 +537,7 @@ function TouchMenu:onMenuSelect(item) callback = item.callback_func() end if callback then - -- put stuff in scheduler so we can See + -- put stuff in scheduler so we can see -- the effect of inverted menu item UIManager:scheduleIn(0.1, function() self:closeMenu()