From 7c9d7e64b34b7aadd708783c28bb717c06ab5704 Mon Sep 17 00:00:00 2001 From: Hans-Werner Hilse Date: Sun, 9 Nov 2014 17:37:50 +0100 Subject: [PATCH 1/2] fix rotation: viewport, not framebuffer Rotation was always referring to the framebuffer's blitbuffer, which in the case of devices with a viewport was not identical. --- frontend/device/screen.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/device/screen.lua b/frontend/device/screen.lua index 1f6f40ec8..140a3863a 100644 --- a/frontend/device/screen.lua +++ b/frontend/device/screen.lua @@ -142,7 +142,7 @@ function Screen:getScreenMode() end function Screen:setRotationMode(mode) - self.fb.bb:rotateAbsolute(-90 * (mode - self.native_rotation_mode - self.blitbuffer_rotation_mode)) + self.bb:rotateAbsolute(-90 * (mode - self.native_rotation_mode - self.blitbuffer_rotation_mode)) self.cur_rotation_mode = mode end From d91dccae80a78cd7d6e522ef07979155b4203866 Mon Sep 17 00:00:00 2001 From: Hans-Werner Hilse Date: Sun, 9 Nov 2014 18:03:33 +0100 Subject: [PATCH 2/2] fix night mode setting implement bezel cleaning with proper background color --- frontend/apps/filemanager/filemanagermenu.lua | 2 +- frontend/apps/reader/modules/readermenu.lua | 2 +- frontend/device/screen.lua | 9 +++++++++ reader.lua | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index c15893915..808c8c17c 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -129,7 +129,7 @@ function FileManagerMenu:setUpdateItemTable() checked_func = function() return G_reader_settings:readSetting("night_mode") end, callback = function() local night_mode = G_reader_settings:readSetting("night_mode") or false - Screen.bb:invert() + Screen:toggleNightMode() G_reader_settings:saveSetting("night_mode", not night_mode) end }) diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index c327ffc4f..79233c02a 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -103,7 +103,7 @@ function ReaderMenu:setUpdateItemTable() checked_func = function() return G_reader_settings:readSetting("night_mode") end, callback = function() local night_mode = G_reader_settings:readSetting("night_mode") or false - Screen.bb:invert() + Screen:toggleNightMode() G_reader_settings:saveSetting("night_mode", not night_mode) end }) diff --git a/frontend/device/screen.lua b/frontend/device/screen.lua index 140a3863a..95f4ae264 100644 --- a/frontend/device/screen.lua +++ b/frontend/device/screen.lua @@ -160,6 +160,15 @@ function Screen:setScreenMode(mode) end end +function Screen:toggleNightMode() + self.bb:invert() + if self.viewport then + -- invert and blank out the full framebuffer when we are working on a viewport + self.fb.bb:invert() + self.fb.bb:fill(Blitbuffer.COLOR_WHITE) + end +end + function Screen:saveCurrentBB() if self.saved_bb then self.saved_bb:free() end self.saved_bb = self.bb:copy() diff --git a/reader.lua b/reader.lua index 2b0ddb668..0c703ed6e 100755 --- a/reader.lua +++ b/reader.lua @@ -103,7 +103,7 @@ end local open_last = G_reader_settings:readSetting("open_last") -- night mode if G_reader_settings:readSetting("night_mode") then - Screen.bb:invert() + Screen:toggleNightMode() end -- restore kobo frontlight settings