mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Warn if color rendering is enabled on a grayscale device. (#5871)
* Make sure the Color menu is accessible on GrayScale device, in the event one would have inherited a color-enabled settings from another device... * Warn on startup if color rendering is enabled on a grayscale device. A non-exhaustive lists of things such a setup would break: * same-to-same blitbuffers for pretty much every rendering engine * same-to-same blitting codepaths and fast-paths * software dithering in CRe
This commit is contained in:
19
reader.lua
19
reader.lua
@@ -182,6 +182,25 @@ if Device:hasColorScreen() and not G_reader_settings:has("color_rendering") then
|
||||
})
|
||||
end
|
||||
|
||||
-- Conversely, if color is enabled on a Grayscale screen (e.g., after importing settings from a color device), warn that it'll break stuff and adversely affect performance.
|
||||
if G_reader_settings:isTrue("color_rendering") and not Device:hasColorScreen() then
|
||||
local ConfirmBox = require("ui/widget/confirmbox")
|
||||
UIManager:show(ConfirmBox:new{
|
||||
text = _("Color rendering is mistakenly enabled on your grayscale device.\nThis will subtly break some features, and adversely affect performance."),
|
||||
cancel_text = _("Ignore"),
|
||||
cancel_callback = function()
|
||||
return
|
||||
end,
|
||||
ok_text = _("Disable"),
|
||||
ok_callback = function()
|
||||
local Event = require("ui/event")
|
||||
G_reader_settings:delSetting("color_rendering")
|
||||
CanvasContext:setColorRenderingEnabled(false)
|
||||
UIManager:broadcastEvent(Event:new("ColorRenderingUpdate"))
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Helpers
|
||||
local lfs = require("libs/libkoreader-lfs")
|
||||
local function retryLastFile()
|
||||
|
||||
Reference in New Issue
Block a user