mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Revamp flash_ui handling, once more, with feeling ;) (#7262)
* Simplify flash_ui handling (by handling the unhighlight pre-callback, c.f., #7262 for more details). * UIManager: Handle translucent window-level widgets (and those wrapped in a translucent MovableContainer) properly in setDirty directly, making sure what's *underneath* them gets repainted to avoid alpha layering glitches. (This was previously handled via localized hacks). * Update UIManager's documentation, and format it properly for ldoc parsing, making the HTML docs more useful. * ReaderView: Reinitialize the various page areas when opening a new document, to prevent poisoning from the previous document. * Event: Handle nils in an event's arguments. * CheckButton/RadioButton: Switch to simple inversion to handle highlighting * CheckButton: Make the highlight span the inner frame's width, instead of just the text's width, if possible. * AlphaContainer: Fix & simplify, given the UIManager alpha handling. * MovableContainer: When translucent, cache the canvas bb used for composition. * Avoid spurious refreshes in a few widgets using various dummy *TextWidgets in order to first compute a text height. * KeyValuePage: Avoid floats in size computations.
This commit is contained in:
@@ -103,6 +103,9 @@ local TextBoxWidget = InputContainer:new{
|
||||
-- (set to 0 to disable any tab handling and display a tofu glyph)
|
||||
_xtext = nil, -- for internal use
|
||||
_alt_color_for_rtl = nil, -- (for debugging) draw LTR glyphs in black, RTL glyphs in gray
|
||||
|
||||
-- for internal use
|
||||
for_measurement_only = nil, -- When the widget is a one-off used to compute text height
|
||||
}
|
||||
|
||||
function TextBoxWidget:init()
|
||||
@@ -1523,6 +1526,9 @@ function TextBoxWidget:moveCursorToCharPos(charpos)
|
||||
if x > self.width - self.cursor_line.dimen.w then
|
||||
x = self.width - self.cursor_line.dimen.w
|
||||
end
|
||||
if self.for_measurement_only then
|
||||
return -- we're a dummy widget used for computing text height, don't render/refresh anything
|
||||
end
|
||||
if not self._bb then
|
||||
return -- no bb yet to render the cursor too
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user