Don't pass a non-window-level widget.
Painting is handled explicitly via widgetRepaint, so passing a widget to setDirty was just plain wrong anyway ;).
Specifically, don't forcibly unschedule/schedule on every input event, instead, let the scheduled task figure out if the deadline came to pass or not ;).
c.f., https://github.com/koreader/koreader/pull/8970#issuecomment-1092775830
Besides getting rid of some overhead, this allows proper scheduling after a task that would have blocked for longer than the standby timeout.
So we actually have a chance of understanding why it fails to load ;).
(Also, properly require posix FFI stuff, in the unlikely event they aren't already in the main namespace).
Instead of UIManager possibly staled _now, which could have
no effect after a long ReaderRolling re-rendering.
Also lower the delay after such ReaderRolling re-rendering,
so we can change settings quicker when comparing renderings.
Includes:
- Fonts: fix hinting with synthesized weight inconsistencies
- Drawing: fix glyphs at top/bottom possibly truncated
- CSS vertical-align set on final blocks should not apply
- Text: correct glyph overlap at text node boundaries
- Use #define for keyword color values
- lvdrawbuf: handle text and background colors with alpha
* Handle said rotation shenanigans inside ScreenSaver & ScreenSaverWidget, which allows a more targeted approach; and prevents said rotation from affecting other widgets. (Also, gets rid of duplicated code).
* Handle the corner-case or exiting early from a "keep on screen for n sec" screensaver better, by unscheduling the extra refresh, since an early tap took care of that already.
Allows the device to go into standby (if available in `/sys/power/state`) to save power.
Adds an entry in the device menu to tune the timeout for standby.
(Shows total standby- and suspend-time in system statistics.)
My volumize PR introduced too many issues. Revert to previous version of NewsDownloader until they can be resolved.
Fixes#8867
Reintroduces #8799, #6234
* Ignore hardware sleep button
When running KOReader with a launcher, having the power button trigger the Power event conflicts with the launcher's built-in screensaver (see https://github.com/koreader/koreader/issues/8891). This commit ignores the hardware power button in KOReader and lets the launcher handle sleep and wake normally.
* Disable autosuspend
If a launcher is active, there will be no way to un-suspend because the power button is ignored by KOReader and handled by the launcher.
* Ignore power button only if Oxide is running
Same with disabling auto suspend
* Only toggle nightmode via the grayscale fb info flag on Kindle
Most NTX boards require elaborate trickery (see fbdepth) to actually
send a vput ioctl without the driver screwing with the rotation behind
your back.
This was causing spurious hardware rotations on exit on most Kobo
devices, something which might have gone mostly unnoticed, as current
Nickel versions will sanitize it on startup.
A simple repro was instead to start an USBMS session, as that exits
KOReader and restarts it without going through fbdepth again ;).
I've implemented a better JSON export format that removes redundant lists and objects and introduces the `entries` key containing all the entries.
It also add `drawer` values from highlight so that user can use this piece of metadata to generate desirable output.
* Calibre plugin - Series/Tag browser updated to show back button.
* Handling page number
* Few updates to search logic:
- Moved "find books" option from CalibreSearch:find(option)
into CalibreSearch:browse(option) function. This way all search options
are handled in one place only.
- Menu is created only once and it is in CalibreSearch:browse(option)
function. This is where it is also invoked with UIManager:show(w).
Switching between different menu content (tags/series/books) is
done using CalibreSearch:switchResults function which will internally
call Menu:switchItemTable. Previously menu was being instantiated
in 2 places depending on are we searching books or series/tags
- Return arrow navigation: Border around Menu is gone to give space
for back arrow. Navigation seems to be working fine so far but will
give it some time to test in case I find any other bugs