From b3efd5a333ce3e6226682eaf86f99ffef9bf5d06 Mon Sep 17 00:00:00 2001 From: poire-z Date: Mon, 22 Oct 2018 18:40:28 +0200 Subject: [PATCH] ReaderDictionary:dismissLookupInfo(): avoid forceRePaint() Avoid forceRePaint() (and showing the full page without any widget) between closing the "Looking up..." info message and displaying the Dictionary result window, as it's not really needed (I must have added it for symmetry with ReaderDictionary:showLookupInfo() where it is needed.) This avoids some occasional refresh competition glitches. Also trim spaces at start or end of selection (can't hurt), and replaced ugly string.gsub(text) with text:gsub(). --- .../apps/reader/modules/readerdictionary.lua | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/frontend/apps/reader/modules/readerdictionary.lua b/frontend/apps/reader/modules/readerdictionary.lua index 7c60cb33a..00f1005d4 100644 --- a/frontend/apps/reader/modules/readerdictionary.lua +++ b/frontend/apps/reader/modules/readerdictionary.lua @@ -462,25 +462,31 @@ function ReaderDictionary:cleanSelection(text) -- some cleanup is still needed for selection we get from other engines -- (example: pdf selection "qu’autrefois," will be cleaned to "autrefois") -- + -- Trim any space at start or end + text = text:gsub("^%s+", "") + text = text:gsub("%s+$", "") -- Replace extended quote (included in the general puncturation range) -- with plain ascii quote (for french words like "aujourd’hui") - text = string.gsub(text, "\xE2\x80\x99", "'") -- U+2019 (right single quotation mark) + text = text:gsub("\xE2\x80\x99", "'") -- U+2019 (right single quotation mark) -- Strip punctuation characters around selection text = util.stripePunctuations(text) -- Strip some common english grammatical construct - text = string.gsub(text, "'s$", '') -- english possessive + text = text:gsub("'s$", '') -- english possessive -- Strip some common french grammatical constructs - text = string.gsub(text, "^[LSDMNTlsdmnt]'", '') -- french l' s' t'... - text = string.gsub(text, "^[Qq][Uu]'", '') -- french qu' + text = text:gsub("^[LSDMNTlsdmnt]'", '') -- french l' s' t'... + text = text:gsub("^[Qq][Uu]'", '') -- french qu' -- Replace no-break space with regular space - text = string.gsub(text, "\xC2\xA0", ' ') -- U+00A0 no-break space + text = text:gsub("\xC2\xA0", ' ') -- U+00A0 no-break space -- There may be a need to remove some (all?) diacritical marks -- https://en.wikipedia.org/wiki/Combining_character#Unicode_ranges -- see discussion at https://github.com/koreader/koreader/issues/1649 -- Commented for now, will have to be checked by people who read -- languages and texts that use them. - -- text = string.gsub(text, "\204[\128-\191]", '') -- U+0300 to U+033F - -- text = string.gsub(text, "\205[\128-\175]", '') -- U+0340 to U+036F + -- text = text:gsub("\204[\128-\191]", '') -- U+0300 to U+033F + -- text = text:gsub("\205[\128-\175]", '') -- U+0340 to U+036F + -- Trim any space now at start or end after above changes + text = text:gsub("^%s+", "") + text = text:gsub("%s+$", "") return text end @@ -494,7 +500,7 @@ end function ReaderDictionary:dismissLookupInfo() if self.lookup_progress_msg then UIManager:close(self.lookup_progress_msg) - UIManager:forceRePaint() + -- UIManager:forceRePaint() end self.lookup_progress_msg = nil end