diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 5c98d7e0a..0496783f9 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -99,6 +99,13 @@ function Device:init() end self.screen.isColorScreen = self.hasColorScreen + self.screen.isColorEnabled = function() + if G_reader_settings:has("color_rendering") then + return G_reader_settings:isTrue("color_rendering") + else + return self.screen.isColorScreen() + end + end self.screen.isBGRFrameBuffer = self.hasBGRFrameBuffer diff --git a/frontend/ui/elements/screen_color_menu_table.lua b/frontend/ui/elements/screen_color_menu_table.lua index be9b38161..290c2c24e 100644 --- a/frontend/ui/elements/screen_color_menu_table.lua +++ b/frontend/ui/elements/screen_color_menu_table.lua @@ -7,11 +7,11 @@ local _ = require("gettext") return { text = _("Color rendering"), enabled_func = Screen.isColorScreen, - checked_func = function() return Runtimectl.is_color_rendering_enabled end, + checked_func = Screen.isColorEnabled, callback = function() - Runtimectl:setColorRenderingEnabled(not Runtimectl.is_color_rendering_enabled) - G_reader_settings:saveSetting( - "color_rendering", Runtimectl.is_color_rendering_enabled) + local new_val = Screen.isColorEnabled() + Runtimectl:setColorRenderingEnabled(new_val) + G_reader_settings:saveSetting("color_rendering", new_val) UIManager:broadcastEvent(Event:new("ColorRenderingUpdate")) end } diff --git a/frontend/ui/widget/htmlboxwidget.lua b/frontend/ui/widget/htmlboxwidget.lua index 9cf94887a..9ac7b0061 100644 --- a/frontend/ui/widget/htmlboxwidget.lua +++ b/frontend/ui/widget/htmlboxwidget.lua @@ -8,10 +8,10 @@ local Geom = require("ui/geometry") local GestureRange = require("ui/gesturerange") local InputContainer = require("ui/widget/container/inputcontainer") local Mupdf = require("ffi/mupdf") +local Screen = Device.screen local TimeVal = require("ui/timeval") local logger = require("logger") local util = require("util") -local Runtimectl = require("runtimectl") local HtmlBoxWidget = InputContainer:new{ bb = nil, @@ -83,7 +83,7 @@ function HtmlBoxWidget:_render() -- In pdfdocument.lua, color is activated only at the moment of -- rendering and then immediately disabled, for safety with kopt. -- We do the same here. - Mupdf.color = Runtimectl.is_color_rendering_enabled + Mupdf.color = Screen:isColorEnabled() local page = self.document:openPage(self.page_number) local dc = DrawContext.new() diff --git a/frontend/ui/widget/textboxwidget.lua b/frontend/ui/widget/textboxwidget.lua index 442ffb7b8..38e166f4d 100644 --- a/frontend/ui/widget/textboxwidget.lua +++ b/frontend/ui/widget/textboxwidget.lua @@ -361,11 +361,11 @@ function TextBoxWidget:_renderText(start_row_idx, end_row_idx) if self._bb then self._bb:free() end local bbtype = nil if self.line_num_to_image and self.line_num_to_image[start_row_idx] then - -- Whether Runtimectl.is_color_rendering_enabled or not, it's best to + -- Whether Screen:isColorEnabled or not, it's best to -- always use BBRGB32 and alphablitFrom() for the best display of -- various images: -- With greyscale screen TYPE_BB8 (the default, and - -- what we would have chosen when not Runtimectl.is_color_rendering_enabled): + -- what we would have chosen when not Screen:isColorEnabled): -- alphablitFrom: some images are all white (ex: flags on Milan, -- Ilkhanides on wiki.fr) -- blitFrom: some images have a black background (ex: RDA,