From e0ac00f310e7b7616e1b1f672b5a6e41720b36b0 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Sun, 13 Dec 2020 01:41:44 +0100 Subject: [PATCH] Make sure getting rid of a DPI override actually restores default behavior (#6984) * Make switching *back* to the default DPI via auto actually work properly. eg., by actually setting DPI back to defaults, and clearing the override flag. * Bump base to pickup https://github.com/koreader/koreader-base/pull/1258 --- base | 2 +- frontend/device/generic/device.lua | 2 +- frontend/ui/elements/screen_dpi_menu_table.lua | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/base b/base index 5d2695b52..ab6cf44ac 160000 --- a/base +++ b/base @@ -1 +1 @@ -Subproject commit 5d2695b520977a48066043e8e1712cced90e0d15 +Subproject commit ab6cf44acb60e6db7cf4c152af523272d47b0117 diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 72fb45c1f..45071e142 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -205,9 +205,9 @@ function Device:init() end function Device:setScreenDPI(dpi_override) + -- Passing a nil resets to defaults and clears the override flag self.screen:setDPI(dpi_override) self.input.gesture_detector:init() - self.screen_dpi_override = dpi_override end function Device:getPowerDevice() diff --git a/frontend/ui/elements/screen_dpi_menu_table.lua b/frontend/ui/elements/screen_dpi_menu_table.lua index d8510b1d7..68eccdd0a 100644 --- a/frontend/ui/elements/screen_dpi_menu_table.lua +++ b/frontend/ui/elements/screen_dpi_menu_table.lua @@ -3,7 +3,7 @@ local Device = require("device") local Screen = Device.screen local T = require("ffi/util").template -local function isAutoDPI() return Device.screen_dpi_override == nil end +local function isAutoDPI() return Screen.dpi_override == nil end local function dpi() return Screen:getDPI() end @@ -16,7 +16,9 @@ local function setDPI(_dpi) text = _dpi and T(_("DPI set to %1. This will take effect after restarting."), _dpi) or _("DPI set to auto. This will take effect after restarting."), }) + -- If this is set to nil, reader.lua doesn't call setScreenDPI G_reader_settings:saveSetting("screen_dpi", _dpi) + -- Passing a nil properly resets to defaults/auto Device:setScreenDPI(_dpi) end