From 5303165bf951e8a1b2abd927370362d67fd932f3 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Mon, 1 Mar 2021 01:35:55 +0100 Subject: [PATCH] ReaderDogEar: Enforce a minimum size, too (#7369) * Add a semi-transparent version of the dogear icon * Ensure the dogear won't become too tiny to be useful --- frontend/apps/reader/modules/readerdogear.lua | 8 ++- resources/icons/mdlight/dogear.alpha.svg | 58 +++++++++++++++++++ 2 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 resources/icons/mdlight/dogear.alpha.svg diff --git a/frontend/apps/reader/modules/readerdogear.lua b/frontend/apps/reader/modules/readerdogear.lua index 511a5f781..e44a40920 100644 --- a/frontend/apps/reader/modules/readerdogear.lua +++ b/frontend/apps/reader/modules/readerdogear.lua @@ -17,7 +17,8 @@ function ReaderDogear:init() -- to not overwrite the book text. -- For other documents, there is no easy way to know if valuable content -- may be hidden by the icon (kopt's page_margin is quite obscure). - self.dogear_max_size = math.ceil( math.min(Screen:getWidth(), Screen:getHeight()) / 32) + self.dogear_min_size = math.ceil(math.min(Screen:getWidth(), Screen:getHeight()) / 40) + self.dogear_max_size = math.ceil(math.min(Screen:getWidth(), Screen:getHeight()) / 32) self.dogear_size = nil self.dogear_y_offset = 0 self.top_pad = nil @@ -38,10 +39,11 @@ function ReaderDogear:setupDogear(new_dogear_size) self.vgroup = VerticalGroup:new{ self.top_pad, IconWidget:new{ - icon = "dogear.opaque", + icon = "dogear.alpha", rotation_angle = BD.mirroredUILayout() and 90 or 0, width = self.dogear_size, height = self.dogear_size, + alpha = true, -- Keep the alpha layer intact } } self[1] = RightContainer:new{ @@ -79,7 +81,7 @@ function ReaderDogear:onSetPageMargins(margins) -- top & right margins and be sure no text is hidden by the icon -- (the provided margins are not scaled, so do as ReaderTypeset) local margin = Screen:scaleBySize(math.max(margin_top, margin_right)) - local new_dogear_size = math.min(self.dogear_max_size, margin) + local new_dogear_size = math.min(self.dogear_max_size, math.max(self.dogear_min_size, margin)) self:setupDogear(new_dogear_size) end diff --git a/resources/icons/mdlight/dogear.alpha.svg b/resources/icons/mdlight/dogear.alpha.svg new file mode 100644 index 000000000..5c9e3abf5 --- /dev/null +++ b/resources/icons/mdlight/dogear.alpha.svg @@ -0,0 +1,58 @@ + +image/svg+xml + +